3QT中的信号与槽

QT是一个语言基于C++,并且可以跨平台的GUI程序框架,它有着非常多的部件,而且很容易增加功能。【9】目前Linux系统上最为流行的桌面环境KDE就是用QT库语言编写的。随着上位机的普及与快速发展,QT已然成为Linux和windows窗口平台上进行上位机开发时的GUI首选,而QT的核心机制,信号与槽,在QT编程中的应用范围非常广泛,同时也是QT不同于其他开发框架的最突出的特征。【10】

3。1QT中的信号

QT中的信号一般是伴随着按键的,当按键按下,并且此信号的类被定义过时,这个信号才能被发出。这个信号被发射的时候,和他有关联的槽很快就被调用并且运作。信号和槽机制在任何的GUI事件循环中是完全独立的。发射函数仅仅在全部的槽回来以后才会回来,要是有着许多的槽和一个信号连接在一起的情况,那么,这个单独的信号发出之后,这些槽会被随机的,不确定的,一个接一个的读取。我们不能人为的操控它们的运行的先后顺序。在写程序时,一定要先在。h文件中对信号声明,用signal函数。在头文件中,先写signal关键字,写完之后,程序就知道了,接下来是信号声明区,在信号声明区中,用户可以自行随意的声明程序中所需要用到的信号。具体的代码案例请看以下:来;自]优Y尔E论L文W网www.youerw.com +QQ752018766-

signals:

void mySignal();

void mySignal(int x);

void mySignalParam(int x,int y);

最开始的第一行,代表着QT中的关键词。然后下面一行代码中,我们把信号mysignal进行了定义,它本身并不带着参变量。在下面代码中,它又被函数mysignal(intx)定义了,不过这时候的它带着整形参变量,这和c++中的虚函数十分相似。信号是没有函数体定义的,但从形式上来讲,信号的声明和普通的函数并无区别。声明一个信号必须要用signals,在该关键字前面不能使用限定符,如public,private和protected等,因为要发射该信号,需要定义该信号的类和子类才行。另外,信号的返回类型是不会有什么有用的信息的,信号的返回类型只是void。信号不应该在源文件中实现,它是由moc自动产生,并且要使用信号和槽机制,只有QObject类和它的子类派生类才行,这里的MyDialog类继承于QDialog类,而QDialog类又是从QWideg类继承而来,QWidget类是QObject类的子类,因此这里是可以用信号与槽机制的。不过,必须要添加宏Q_Object在类声明的最开始的地方,才能使用信号与槽。

上一篇:500公里时速高铁列车电空制动系统模拟
下一篇:STC89C52单片机数字显示系统设计+程序+电路图

STC89C51单片机的仿生机器鱼软件程序设计

船舶恒功率变极调速起货...

机舱自动化数据采集PLC程序设计+梯形图

LabVIEW基于MySQL数据库程序设计+源程序

PLC二维画笔装置程序设计+源程序

LabVIEW机舱监测报警程序设计+源程序

船舶辅助锅炉控制PLC程序设计+梯形图

网络语言“XX体”研究

新課改下小學语文洧效阅...

我国风险投资的发展现状问题及对策分析

老年2型糖尿病患者运动疗...

互联网教育”变革路径研究进展【7972字】

ASP.net+sqlserver企业设备管理系统设计与开发

张洁小说《无字》中的女性意识

安康汉江网讯

麦秸秆还田和沼液灌溉对...

LiMn1-xFexPO4正极材料合成及充放电性能研究