本文共 2657 字,大约阅读时间需要 8 分钟。
第二个例子要说明的是如何响应用户的动作。应用程序由一个按钮构成,用户可以单击这个按钮退出程序。QPushButton
做窗口部件,与QLabel
不同之处.
第一个窗口部件不一样,第二QPushBotton
要用的信号与槽,当点击PushButton
以后,Qt
就会响应这个动作将与一段代码连接起来响应退出。 编写的程序与QLabel
标签窗口部件实现很相似。 //
定义一个Qt
的QApplication
类头文件,所有的Qt
图形化应用程序都必须包含此文件,它包含了Qt
图形化应用程序的各种资源、基本设置、控制流以及事件处理等。如果Qt
的非图形化应用程序,则需包含<QCoreApplication>
//
定义一个QPushButton
类头文件,对于每个类的公众Qt
的Application
的一部分,
存在着一个相同的名称包含其定义的头文件。QPushButton
是一个GUI
按钮,用户可以按下和释放。它管理自己的外观和所有其他Qwidget
窗口部件的动作。QPushButton
小部件是一个用户界面的对象,可以处理用户输入和绘制图形。可以修改QPushButton
的整体外观,如:颜色和头一些次要属性,及PushButton
部件的内容。可以用QPushButton
来显示任何文本或QIcon
图标。 int main(int argc,char *argv[]) //
应用程序的主函数的入口点,Qt
的主函数只需要执行之前,通过控制权限交给Qt
库,然后响应有关事件的用户的行为方案的一些初始化的类。Argc
参数是命令行参数的数量,argv
是命令行参数的数组。这是标准的C++
功能 QApplication app(argc,argv);
//
创建一个QApplication
对象,用来管理整个应用程序所用到的资源。QApplication
构造函数需要两个参数,分别是argc
和argv
,以便QApplication
可以处理一些标准命令参数。所有的命令行参数被Qt
确认删除从argv
中获取,和argc
相应递减。 QPushButton *button = new QPushButton(“Quit”);
//
创建一个button
按钮对象,并设置为显示文本”Quit”
,因为没有指定父窗口,因此按钮将是其自己的窗口,有窗口框架和标题。 QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()));
//
这里QObject::connect
是Qt
的最重要的特征。Connect
()是QObject
的静态函数,这个connect()
调用之间建立了两个Qt
对象(对象继承QObject
,直接或间接)单向连接,这里的对象为button,
和QApplication
应用程序自身的对象app
。Qt
的每个对象可以有两个信号(SIGNAL
)为发送和槽(SLOT
)为接受。这里定义的clicked
()信号连接到退出quit()
应用程序的插槽中,当点击QPushButton
时,该按钮就会发送一个clicked()
信号,槽就可以自动执行退出。quit()
是QApplication
的一个退出函数 //
应用程序将所有的控制权限传递给Qt
。此时,程序进入事件循环状态,也就是说显示这个QPushButton
窗口部件,等待用户的动作。当用户点击QuitQPushButton
到松开QPushButton
,完成了点击动作。这时,应用程序将这个点击鼠标信号事件发射到连接的连接槽,槽接受到clicked()
信号后执行退出quit(),
在退出之前,QApplication
运用exec()
方法,将Qt
将完成事件处理及显示的工作在应用程序退出时返回exec()
的值 [root@localhost root]# mkdir quit
//
在root
主目录下创建一个名为quit
的目录 [root@localhost root]# cd quit/
[root@localhost quit]# vi quit.cpp
//
用vi
命令创建一个名为quit
的C++
程序源文件 int main(int argc,char *argv[])
QApplication app(argc,argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()));
[root@localhost quit]# qmake –project
//
执行qmake –project
生成一个与平台无关的quit.pro
项目文件 [root@localhost quit]# qmake quit.pro
//
执行qmake
后跟指定的quit.pro
项目文件,生成一个与平台相关的Makefile
文件 [root@localhost quit]# make
//
执行make
命令后,编译quit.cpp
文件源代码,并生成quit.o
目标文件及quit
可执行文件 [root@localhost quit]# ./quit
//
输入点反斜杠跟执行文件,点击回车,如果成功的话就会弹出一个QPushButton
窗口部件出来,QPushButton
显示的文本为Quit
,点击Quit
按钮就会退出。 初探Qt的SIGNAL and SLOT就介绍到这里。。。感谢您的阅读。。
本文转自 chen138 51CTO博客,原文链接:http://blog.51cto.com/chenboqiang/311388,如需转载请自行联系原作者