1. 新建QT项目

项目结构:

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

3.为确定按钮添加事件。选中按钮à转到槽,截图如下:

点击clicked按钮,添加事件代码如下:

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

5.新建QT项目

项目结构:

编写widget.h头文件

#ifndef WIDGET_H

#define WIDGET_H

#include <QWidget>

#include <QPushButton>  //按钮对应的头文件

#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;   //定义一个按钮

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. 【iOS】自动布局(AutoLayout)和手写布局(frame)

    1.1 AutoLayout原理 iOS 中视图所需要的布局信息只有两个,分别是 origin/center 和 size,在这里我们以 origin & size 为例,也就是 frame ...

  2. 02黑马QT笔记之完全手写Hello World

    02黑马QT笔记之完全手写Hello World 1 步骤: 1 新建项目. 2 选择其他项目->空项目. 3 在空项目中添加QT +=widgets //代表使用窗口基类. 4 右击项目名字- ...

  3. NumPy实现简单的神经网络分析Mnist手写数字库(三)之划分迷你批(mini-batch)

    NumPy实现简单的神经网络分析Mnist手写数字库(三)之划分迷你批(mini-batch) 划分迷你批(mini-batch) 引言 迷你批(mini-batch)简介 经典梯度下降 随机梯度下降 ...

  4. 利用python实现简单的人工神经网络识别手写数字

    利用 Python 搭建起了一个简单的神经网络模型,并完成识别手写数字. 1.前置工作 1.1 环境配置 这里使用scikit-learn库内建的手写数字字符集作为本文的数据集.scikit-lear ...

  5. MVP简单封装,不用再手写了

    前言: 本文的源码是根据一位前辈的帖子加入了本人的理解总结的,如果感觉不错,感谢采用,如果有瑕疵,请及时沟通,我会尽快修复不足.只是喜欢代码,谈不上精通. 正文: 导入依赖 项目gradle allp ...

  6. linux运行qt桌面生成pro怎么写,把桌面qt代码编译运行到qpe上的一个例子

    qt-x11版本是2.3.2 qt core版本是2.3.2 qtopia版本是2.2.x qt-x11版本安装目录下的tutorial目录下有一些例子.我把其中的t7目录下的程序(这是一个lcd数值 ...

  7. Qt虚拟键盘更新,支持手写识别功能

    Qt官方博客发布消息称,新版本的Qt虚拟键盘支持手书写识别功能(HWR).性能改进.Nuance T9书写一体化,并支持繁体中文! Qt虚拟键盘日前发布了新功能和版本控制方案的更新.作为最近的许可变更 ...

  8. 基于Aforge的手势识别之一~~~简单的手写识别

    本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 上一篇文章介绍了如何用Aforge去捕捉运动物体,现在就介绍一个更深入的操作----手势识别.       我 ...

  9. Android 电子签名,手写签名案列实现方法,并上传网页显示(base64)!

    最近说项目可能会用到一个电子签名,不需要识别的那种,只是一个单纯手写签名,然后以base64的格式提供给前端web页面.其实挺简单的,自定义一个手写view就上线了.Android 电子签名,手写签名 ...

最新文章

  1. python3 删除 文件 文件夹
  2. php后台无法接受文件,ios afnetworking2.x上传图片 服务端php无法接受文件问题
  3. 【转】Linux系统编程---dup和dup2详解
  4. Solr及Spring-Data-Solr入门学习
  5. 2017河北对口计算机试题,2017河北省对口升学计算机专业理论试题(附答案解析).doc...
  6. poj 2253 Frogger floyd 长路求权值最大边,属于简单题!!!!
  7. Unity笔记——1.Unity3D脚本基础
  8. Xshell、Xftp 正版资源
  9. 详解什么是BT种子、迅雷下载链接、磁力链接
  10. SATI统计分析文献--以关键词为例
  11. 计算机动画电影英语翻译,“动画电影”英语怎么说
  12. 智齿科技宣布完成1亿美元D轮融资,暂未取得有效专利
  13. 安装完Fedora 18后需要做的事情
  14. ALL_TAB_COLS
  15. 凹凸贴图、法线贴图、置换贴图
  16. 聊聊我在职场的至暗时刻!
  17. [附源码]java毕业设计病历管理系统
  18. 对上传图片进行处理,大图片压缩补白,小图片适度放大四周补白
  19. 由浅入深探索DotAsterisk(点星PBX)中小型呼叫中心IPPBX系统(一:前言)
  20. Linux中fork()系统调用创建两个子进程

热门文章

  1. VTK:量化多数据点用法实战
  2. VTK:标量条形 Actor用法实战
  3. VTK:高亮选择动画用法实战
  4. VTK:绘制单元格颜色用法实战
  5. OpenCASCADE:Modeling Algorithms模块几何工具之插值
  6. wxWidgets:制作渲染循环
  7. boost::safe_numerics模块测试 constexpr 转换
  8. boost::math模块二项式分布来预测概率 抛硬币时的正面和反面的测试程序
  9. boost::filesystem模块Microsoft TCHAR 的使用示例的测试程序
  10. GDCM:gdcm::ImageReader的测试程序