QMainWindow,QWidget,QDialog,这三基类都可以作为顶层窗口 QWidget:是所有窗口类的父类,功能最简单 QMainWindow:如果窗口需要菜单栏,工具栏,状态栏,就需要QMainWindow QDialog:对话框窗口,最显著的特点:右上角只有一个关闭按钮 main。cpp 点击领取Qt学习资料视频教程链接 应用程序类和窗口类是Qt程序必须的两个类includemywidget。hqt中类名和头文件名一样,而且没有。hincludeQApplication应用程序入口intmain(intargc,charargv〔〕){应用程序类,每一个qt程序中有且只有一个窗口执行起来之后,应用程序类进入一个消息循坏,不断捕捉事件QApplicationa(argc,argv);窗口类,创建出来之后默认不显示MyWidgetw;顶层窗口显示窗口w。show();returna。exec();a即应用程序类} mywidget。hifndefMYWIDGETHdefineMYWIDGETHincludeQWidgetincludeQPushButtonclassMyWidget:publicQWidget{QOBJECT如果使用信号和槽,必须添加这个宏public:MyWidget(QWidgetparent0);MyWidget();private:QPushButtonb1;QPushButtonb2;};endifMYWIDGETH HelloQt。pro文件ProjectcreatedbyQtCreator20160304T10:09:29QTcoreguiqt程序用到哪些模块兼容以前的版本,qt5以取没有widgets模块,只有gui模块,qt5从gui中分离出widgetsgreaterThan(QTMAJORVERSION,4):QTwidgets生成的应用程序的名字TARGET123指定生成的makefile的类型libTEMPLATEapp源文件换行SOURCESmain。cppmywidget。cppmybutton。cpp头文件HEADERSmybutton。hmywidget。hCONFIGc11 mywidget。cppincludemywidget。hincludemybutton。h自定义类头文件MyWidget::MyWidget(QWidgetparent):QWidget(parent){如果窗口需要依附另外一个窗口,需要给该窗口指定父类父窗口显示的时候,子窗口也会随之显示初始化b2newQPushButton(hello,qt,this);b2setText(hello,qt);b2show();b1。setParent(this);b1。setText(我是老二);改变位置移动窗口坐标系原点:左上角x:向右递增,y向下递增b1。move(100,100);b1。resize(50,50);内存自动回收1。从QObject派生的类1。直接2。间接2。指定父类,父亲析构的时候,先析构他的孩子创建自定义按钮对象MyButtonbtnnewMyButton(this);btnsetText(woshimybutton);设置窗口标题thissetWindowTitle(明天就要离开中腾。。。。);thisresize(200,300);thissetFixedSize(200,300);thissetWindowIcon(QIcon(D:Luffy。png));需求b1关闭窗口connect(b1,发出的信号,this,处理信号的槽函数);connect(b1,QPushButton::clicked,this,MyWidget::close);b1:信号的发出者,此参数是一个指针QPushButton::clicked:信号发出者,内部的一个信号格式:信号发出者类的名字::信号的名字this:信号的接收者,此参数是一个指针MyWidget::close:信号的处理函数,属于this}MyWidget::MyWidget(){}