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.chuibin.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单片机数字显示系统设计+程序+电路图

三角架自动矫正机PLC控制程序设计+梯形图

电磁阀LabVIEW测试程序设计

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

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

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

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

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

从企业eHR建设谈管理信息...

大规模MIMO系统的发展研究现状

浅析施工企业保理融资成...

MNL模型历史城区居民活动...

提高小學语文課堂朗读教...

小型通用机器人控制系统设计任务书

高效课堂教师问卷调查表

PCI+PID算法直流力矩电机速...

遥感土地用变化监测国内外研究现状

《水浒传》中血腥暴力研...