下载
此处我使用的是windows下的Qt5.9.8,并给出下载链接,其他需要的小伙伴可以根据链接自行挑选所需的。
Qt官网下载,选择 qt-opensource-windows-x86-5.9.8.exe
国内镜像站,同上选择。
安装
除了常规的下一步下一步之外,选择、
UI文件设计与运行机制
项目管理文件(.pro)
信号与槽
信号(Signal)就是在特定情况下被发射的事件,例如PushButton最常见的信号就是鼠标单击时发射的clicked()信号,一个ComboBox最常见的信号是选择的列表项变化时发射的currentIndexChanged()信号。
槽(Slot)就是对信号响应的函数。槽就是一个函数,与一般的C++函数是一样的,可以定义在类的任何部分(public、private或protected),可以具有任何参数,也可以被直接调用。槽函数与一般的函数不同的是:槽函数可以与一个信号关联,当信号被发射时,关联的槽函数被自动执行。
信号与槽函数使用QObject::connect()
函数实现的,其基本格式是:
QObject::connect(sender,SIGNAL(signal()),receiver,SLOT(slot()))
connect()是QObject类的一个静态函数,而QObject是所有Qt类的基类,在实际调用时可以忽略前面的限定符,可以直接写为:
QObject::connect(sender,SIGNAL(signal()),receiver,SLOT(slot()))
sender:指发射信号的对象名称;
signal():信号名称;
receiver:指接受信号的对象名称;
slot():槽函数名称。
举例说明:
QObject::connect(btnClose,SIGNAL(clicked()),Widget,SLOT(close()))
规则
- 一个信号可以连接多个槽;
- 多个信号可以连接同一个槽;
- 一个信号可以连接另外一个信号;
- 严格情况下,信号与槽的参数个数和类型需要一致,至少信号的参数不能少于槽的参数;
在使用信号与槽的类中,必须在类的定义中加入宏Q_OBJECT
;- 当一个信号的所有槽函数执行完毕后,才会执行发射信号处后面的代码