一、QT应用程序框架:
.pro(工程文件)
Headers(头文件)
头文件里添加一些QWedget/QPushButton等一些常用的控件类,也可以添加自建的窗口类。
Sources(源文件)
是类的实现文件,里面包括类的实现函数,以及main函数。
main函数
#include "mainwidget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); #程序主题部分; return a.exec(); }
二、标准信号和槽:
信号是给槽函数传参的,所以类型、参数应该一样。
信号可重载。但使用的时候得转化函数名为不同的名字。也可以用Qt4式的SIGNAL()与SLOT()选择信号和槽函数,但槽函数得加Public slots:。
三、两个独立的窗口:
新建子窗口类,在父窗口中定义主窗口。
四、两个窗口互相切换构建思路:
所有的connect()都是在父类的.cpp文件里写的;
父窗口切换到子窗口可以直接写;
子窗口切换到父窗口,得先在子类中定义一个Signal(),一个Send();再在子类中通过connect()将Signal转成子窗口发送的信号;最后在主类中定义一个dealsignal(),用来实现父窗口到子窗口的切换,最后通过connect()处理子窗口发送过来的信号。
五、Lamda函数
可以使接收到信号后在connect里直接执行动作,而不用非得在外部新建常函数。
//Lambda表达式, 匿名函数对象 //C++11增加的新特性, 项目文件: CONFIG += C++11 [] () mutable //可使匿名函数在内部改变外部变量的值 { // = :把外部所有局部变量、类中所有成员以值传递方式 // this: 类中所有成员以值传递方式 // & : 把外部所有局部变量, 引用符号 }