让你的QT显示一个窗口吧
程序员文章站
2022-07-10 23:47:36
项目文件 01_QtTest.pro 头文件 mywidget.h 源文件 main.cpp mywidget.cpp 结果显示 ......
项目文件
01_qttest.pro
#------------------------------------------------- # # project created by qtcreator 2019-04-11t17:07:35 # #------------------------------------------------- #添加qt支持的模块,一个是core基础代码模块,包含运算的,gui是图形界面库 qt += core gui #如果qt主版本大于4(也就是说当前使用的是qt5或者更高版本),则需要添加widgets模块 greaterthan(qt_major_version, 4): qt += widgets # 应用程序的名字 target = 01_qttest #指定makefile的类型, app template = app #工程项目包含的源文件 sources += main.cpp \ mywidget.cpp mywidget.cpp #工程项目包含的头文件 headers += mywidget.h
头文件
mywidget.h
/********************************** 语句1 #ifndef 标识1 语句2 #define 标识1 语句3 #endif 语句4 …… 语句5 …… 该段代码意思是:如果标识1没有被定义,则重定义标识1,即执行语句2、语句3; 如果标识1已经被定义,则直接跳过语句2、语句3,直接执行语句4、语句5、…… ***********************************/ #ifndef mywidget_h #define mywidget_h #include <qwidget> class mywidget : public qwidget//光标停留在红色字体这里,点击f1可以查找手册 { q_object//信号与槽时候需要的 public: mywidget(qwidget *parent = 0); /**************************** * qwidget*parent=0,父控件引用,用于向或者从父控件传递事件signal-slot那些。 * 这个不是继承关系,而是图形界面上各个组件之间的逻辑拓扑关系。 * 比如放在tab里的textbox要随着tab大小的变化而变动自己的尺寸,事件就是通过这个传递的。 * 形参里面写着parent=0,是默认值0,c++可以通过预赋值“省略”一些形参。 * 你这里就是mywidget不是任何控件的子控件。 * 整个下来,mywidget继承qwidget,构造函数默认为0. * 可以在构造函数初始化一切你想要的东西,说白点就是前戏!! ***************************/ ~mywidget();//对象消亡时,自动被调用,用来释放对象占用的空间 }; #endif // mywidget_h
源文件
main.cpp
#include "mywidget.h" //qapplication应用程序类 //qt头文件没有.h //头文件和类名一样 #include <qapplication> int main(int argc, char *argv[]) { //有且只有一个应用程序类的对象 qapplication a(argc, argv); //mywidget继承与qwidget,qwidget是一个窗口基类 //所以mywidget也是窗口类 //w就是一个窗口 mywidget w; //窗口创建默认是隐藏,需要人为显示 w.show(); //让程序一直执行,等待用户操作 //等待事件的发生 return a.exec(); }
mywidget.cpp
#include "mywidget.h" mywidget::mywidget(qwidget *parent) : qwidget(parent) { } mywidget::~mywidget() { }
结果显示
上一篇: dubbo源码研究(一)
下一篇: 了解spring