1. 新建QT项目

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

项目结构:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

2.打开QT图形编辑界面,通过拖动组件的方式生成例如以下界面:

3.为确定button加入事件。

选中buttonà转到槽。截图例如以下:

点击clickedbutton,加入事件代码例如以下:

4以下是手动编写一个QT案例:

5.新建QT项目

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

项目结构:

编写widget.h头文件

#ifndef
WIDGET_H

#define
WIDGET_H

#include
<QWidget>

#include
<QPushButton> 
//button相应的头文件

#include
<QVBoxLayout> 
//布局,这个中布局让组件上下显示

#include
<QHBoxLayout> 
//这个布局让组件水平显示

#include
<QGridLayout> 
//Grid表格布局的头文件

#include
<QLineEdit>   
//单行文本框相应的头文件

#include
<QLabel>      //Label相应的头文件

class
Widget
:
public
QWidget

{

Q_OBJECT

public:

Widget(QWidget
*parent=
0);

~Widget();

private:

QPushButton
*btn1;  
//定义一个button

QHBoxLayout
*layout1,
*layout2; 
//两个布局

QVBoxLayout
*layout3;

QGridLayout
*layout4;

QLineEdit
*edit1,*edit2,*edit3;

QLabel
*label1;

QLabel
*label2;

private
slots: 
//这里表示的是事件

void
on_clicked();

};

#endif
//
WIDGET_H

6.编写widget.cpp文件

#include "widget.h"
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    layout1 = new QHBoxLayout;
    layout2 = new QHBoxLayout;
    //layout3 = new QVBoxLayout(this);
    layout4 = new QGridLayout(this);
    btn1 = new QPushButton;
    edit1 = new QLineEdit;
    edit2 = new QLineEdit;
    edit3 = new QLineEdit;
    label1 = new QLabel;
    label2 = new QLabel;//这个控件没有不论什么父控件
 
    //第一种布局方式
//    layout1->addWidget(btn1);
//    layout1->addWidget(edit1);
//    layout1->addWidget(edit2);
//    layout1->addWidget(edit3);
//    layout2->addWidget(label1);
//    layout3->addLayout(layout1);
//    layout3->addLayout(layout2);
 
    layout4->addWidget(btn1, 0, 0);
    layout4->addWidget(edit1, 0, 1);
    layout4->addWidget(edit2, 0, 2);
    layout4->addWidget(edit3, 1, 0);
    layout4->addWidget(label1, 1, 1);
    btn1->setText("确定");
 
    //当点击了btn1的时候就调用on_clicked()这个函数
    //实现控件与详细的槽函数关联
    connect(btn1, SIGNAL(clicked()), this, SLOT(on_clicked()));
}
 
Widget::~Widget()
{
    //delete layout1;在QT内部。不须要单独delete一个控件的指针
    //QT的窗体在退出的时候会自己主动delete他相关的子控件
    delete label2;
}
 
void Widget::on_clicked()
{
    int a = edit1->text().toInt();
    int b = edit3->text().toInt();
    if (edit2->text() == "+")
        label1->setText(QString::number(a + b));
    if (edit2->text() == "-")
        label1->setText(QString::number(a - b));
    if (edit2->text() == "*")
        label1->setText(QString::number(a * b));
    if (edit2->text() == "/")
    {
        if (b != 0)
            label1->setText(QString::number(a / b));
    }
}
7.main.cpp文件
#include "widget.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
 
    return a.exec();
}
8.窗体的效果:

版权声明:本文博客原创文章。博客,未经同意,不得转载。

简单QT应用了可实现手动布局QT应用的更多相关文章

  1. Qt之手动布局

    简述 手动布局,可以实现和水平布局.垂直布局.网格布局等相同的效果,也可实现属于自己的自定义布局,当窗体缩放时,控件可以随之变化. 其对于坐标系的建立有严格要求,纯代码思维,使用复杂,不易维护,所以一 ...

  2. Qt基本控件及三大布局

    Qt基本控件及三大布局 来源: http://blog.csdn.net/a2604539133/article/details/73920696 Qt基本模块 一.Qt的三大布局 QHBoxLayo ...

  3. QT学习记录之控件布局

    作者:朱金灿 来源:http://blog.csdn.net/clever101 想到控件布局就会想到Windows编程中要实现对话框上的控件的合理布局是一件多么艰难的事情.对此QT提出了一个很方便的 ...

  4. [Qt Creator 快速入门] 第1章 Qt Creator简介

    Qt Creator 是一个跨平台的.完整的 Qt 集成开发环境,其中包括了高级C++代码编辑器.项目和生成管理工具.集成的上下文相关的帮助系统.图形化调试器.代码管理和浏览工具等.这一章先对 Qt ...

  5. Qt国际化(Q_DECLARE_TR_FUNCTIONS() 宏给非Qt类添加翻译支持,以前没见过QTextEncoder和QTextDecoder和QLibraryInfo::location()和QEvent::LanguageChange)

    Internationalization with Qt 应用程序的国际化就是使得程序能在国际间可用而不仅仅是在本国可用的过程. Relevant Qt Classes andAPIs 以下的类支持Q ...

  6. [Qt Creator 快速入门] 第2章 Qt程序编译和源码详解

    一.编写 Hello World Gui程序 Hello World程序就是让应用程序显示"Hello World"字符串.这是最简单的应用,但却包含了一个应用程序的基本要素,所以 ...

  7. Fedora15下搭建QT开发环境及编译QT(提前一键安装完,qt编译所有必需库 yum install gcc-c++ libXtst-devel freetype freetype-devel fontconfig-devel libXrender-devel )

    看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考<yum安装qt> 不过初步接触fedora,为了了解一下如何在linux上编译.安装开源代码,所以必须 ...

  8. Qt 4.6: A Quick Start to Qt Designer

    Qt 4.6: A Quick Start to Qt Designer A Quick Start to Qt Designer Using Qt Designer involves four ba ...

  9. Qt-c++桌面编程报错:qt.qpa.plugin: Could not find the Qt platform plugin "windows" in "",已解决

    语言:c++ 编译库:Qt GUI,qt5.12.1 软件类型:Qt application,qt桌面软件 运行平台:window 10 ?按照[https://www.devbean.net/201 ...

随机推荐

  1. 前端编程提高之旅(六)----backbone实现todoMVC

                乐帝当年学习backbone时.最開始是看官网todoMVC的实现.后来了解到requireJS便于管理JS代码.就对官网代码做了requireJS管理.但此时乐帝感觉此时的t ...

  2. 一个简单而经典的RTX51 Tiny应用实例

    关于RTX51 Tiny嵌入式实时操作系统的描写叙述请參考本人的上一篇博文(RTX51 Tiny实时操作系统学习笔记-初识RTX51 Tiny). 本篇博文.我将通过一个实例代码,带大家深入了解一下R ...

  3. POJ 1205 Water Treatment Plants(递推)

    题意   建设一条河岸的污水处理系统  河岸有n个城市   每一个城市都能够自己处理污水 V   也能够把污水传到相邻的城市处理 >或<   除了你传给我我也传给你这样的情况   其他都是 ...

  4. FBReaderJ源代码编译配置

    1.git路径:https://github.com/geometer/FBReaderJ.git 2.project中HowToBuild指引了怎么编译,补充一下: 须要在project文件夹和th ...

  5. ZooKeeperEclipse 小工具

    插件地址:ZooKeeperEclipse  http://www.massedynamic.org/eclipse/updates/ 安装ZooKeeperEclipse插件过程例如以下: Step ...

  6. 促销R语言应用性能

    1.       绩效评估 时间的确定 R测量时间是在最简单的方式提供是system.time性能. system.time(expr, gcFirst=TRUE) 这个函数会在不减少程序执行性能的情 ...

  7. 【python下使用OpenCV实现计算机视觉读书笔记4】保存摄像头视频

    读取摄像头内容,然后保存一段十秒钟的视频. import cv2 cameraCapture = cv2.VideoCapture(0) fps = 30 # an assumption size = ...

  8. d3d纹理参数

    D3DTEXTURESTAGESTATETYPE 纹理状态定义了一个多层次的复杂的操作质感.一些采样工作状态设置顶点,有些组像素操作. 纹理层次状态可以快速保存并返回状态. typedef enum ...

  9. SpringSecutiry权限管理手册

    SpringSecutiry权限管理手册: 请见以下URL: http://www.mossle.com/docs/auth/html/preface.html Spring Security 参考文 ...

  10. 【Android进阶】Gson解析json字符串的简单应用

    在客户端与服务器之间进行数据传输,一般采用两种数据格式,一种是xml,一种是json.这两种数据交换形式各有千秋,比如使用json数据格式,数据量会比较小,传输速度快,放便解析,而采用xml数据格式, ...