1.第一个QT程序
发布日期:2022-03-30 18:18:21
浏览次数:41
分类:博客文章
本文共 1696 字,大约阅读时间需要 5 分钟。
第一个QT程序
new->Application->Qt Widgets Application
创建一个Qt窗口应用.创建类的时候,会先创建一个顶层窗口,有一个下拉框.
QWidget
: QWidget类是所有用户界面对象的基类.QMainWindow和QDialog都是QWidget的子类。QMainWindow
: QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。QDialog
: QDialog类是对话框窗口的基类。
在这里我选择了QWidget,不使用ui.
#include "mywidget.h"#includeint main(int argc, char *argv[]){ QApplication a(argc, argv); MyWidget w; w.show(); return a.exec();}
应用程序类QApplication
在新创建的文件main.cpp
中,main()
创建了对象QApplication
.
QApplication
:应用程序类,在每个QT程序中,有且只有一个. 窗口拖拽实现:
当你用鼠标拖拽窗口顶部时,窗口接收到了事件
的发生.捕捉到事件后,应用程序类做一些默认的处理.最终通过应用程序类QApplication
完成. 窗口类MyWidget
w.show()
: 显示窗口
窗口类创建出来默认是不显示的.
进入事件循环 a.exec()
- a.exec()走到了后台,进行消息循环.
- return a.exec();相当于把程序运行交给Qt处理,进入程序的循环状态。
- return 0;程序就直接退出了,不能达到显示的效果.
头文件
#include "mywidget.h"#include
mywidget.h
#ifndef MYWIDGET_H#define MYWIDGET_H#includeclass MyWidget : public QWidget{ Q_OBJECT //如果使用信号槽,必须添加这个宏.public: MyWidget(QWidget *parent = 0); ~MyWidget();};#endif // MYWIDGET_H
在这段代码里面我们可以看到:
- 包含头文件
<QWidget>
- 自定义
MyWidget
继承基类QWidget
3.宏Q_OBJECT
QApplication
文件Demo_pro
对整个项目进行管理.
//当前项目用到的一些模块QT += core gui //兼容以前的版本//Qt4没有widgetsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgets//生成的应用程序的名字TARGET = Demo//指定生成的makefile类型TEMPLATE = appDEFINES += QT_DEPRECATED_WARNINGSCONFIG += c++11//源文件SOURCES += \ main.cpp \ mywidget.cpp//头文件HEADERS += \ mywidget.hqnx: target.path = /tmp/$${TARGET}/binelse: unix:!android: target.path = /opt/$${TARGET}/bin!isEmpty(target.path): INSTALLS += target
我怎么知道我用到的窗口属于哪个类?
例如,我这个项目只用到了MyWidget
类.
MyWidget
,Follow Symbol Under Cursor
,看到继承的基类是QWidget
.按F1,获得页面 QWidget ClassHeader:#includeqmake:QT += widgets
转载地址:https://www.cnblogs.com/cnleika/p/10525934.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年02月28日 16时02分51秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
redis线程阻塞原因排插_Redis阻塞原因详解
2019-04-21
labview自动保存报表_基于LabVIEW的Excel报表的自动生成功能
2019-04-21
geotool 导出shp_Java 读取shape文件
2019-04-21
mysql 关联更新_MySQL UPDATE多表关联更新
2019-04-21
mysql call_mysql的call用法 call调用函数的例子
2019-04-21
python参数验证_参数验证,Python中的最佳实践
2019-04-21
python画多层网络_在pymn中修改多层网络图
2019-04-21
java 密钥 aes 解密_Java中AES加密解密以及签名校验
2019-04-21
java树转化成图_Java 转换一组数据为树型数据
2019-04-21
java 底层ppt_Java 如何设置 PPT 中的形状排列方式 具体内容
2019-04-21
mysql更新第5条记录_MYSQL中添加、更新、删除数据
2019-04-21
mysql service5.7_Mysql5.7服务下载安装
2019-04-21
mysql 更新数据 字符串_批量替换 MySQL 指定字段中的字符串
2019-04-21
mysql concat 整数型_MySQL 数字类型转换函数(concat/cast)
2019-04-21
mysql单元格函数是_MySQL常用内置函数
2019-04-21
mysql 怎么字段分裂_你可以分裂/爆炸MySQL查询中的字段吗?
2019-04-21