博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt 第一章 建立连接
阅读量:6334 次
发布时间:2019-06-22

本文共 2657 字,大约阅读时间需要 8 分钟。

1.2
建立连接
第二个例子要说明的是如何响应用户的动作。应用程序由一个按钮构成,用户可以单击这个按钮退出程序。QPushButton
做窗口部件,与QLabel
不同之处.
第一个窗口部件不一样,第二QPushBotton
要用的信号与槽,当点击PushButton
以后,Qt
就会响应这个动作将与一段代码连接起来响应退出。
编写的程序与QLabel
标签窗口部件实现很相似。
#include <QApplication>
//
定义一个Qt
QApplication
类头文件,所有的Qt
图形化应用程序都必须包含此文件,它包含了Qt
图形化应用程序的各种资源、基本设置、控制流以及事件处理等。如果Qt
的非图形化应用程序,则需包含<QCoreApplication>
#include <QPushButton>
//
定义一个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
的一个退出函数
       button->show();
//
将对象button
窗口部件显示出来
       return app.exec();
//
应用程序将所有的控制权限传递给Qt
。此时,程序进入事件循环状态,也就是说显示这个QPushButton
窗口部件,等待用户的动作。当用户点击QuitQPushButton
到松开QPushButton
,完成了点击动作。这时,应用程序将这个点击鼠标信号事件发射到连接的连接槽,槽接受到clicked()
信号后执行退出quit(),
在退出之前,QApplication
运用exec()
方法,将Qt
将完成事件处理及显示的工作在应用程序退出时返回exec()
的值
}
 
[root@localhost root]# mkdir quit
//
root
主目录下创建一个名为quit
的目录
[root@localhost root]# cd quit/
//
切换到刚才创建quit
目录
[root@localhost quit]# vi quit.cpp
//
vi
命令创建一个名为quit
C++
程序源文件
#include <QApplication>
#include <QPushButton>                                                                             
int main(int argc,char *argv[])
{
        QApplication app(argc,argv);
        QPushButton *button = new QPushButton("Quit");
        QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()));
        button->show();
        return app.exec();
}
[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,如需转载请自行联系原作者
你可能感兴趣的文章
《团队软件过程(修订版)》—第1章1.3节TSPi的设计
查看>>
“最佳人气奖”出炉!4月27号,谁能拿到阿里聚安全算法挑战赛的桂冠?
查看>>
《网页美工设计Photoshop+Flash+Dreamweaver从入门到精通》——2.6 图层与图层样式...
查看>>
《iOS组件与框架——iOS SDK高级特性剖析》——第2章,第2.7节获取线路
查看>>
Spring中 @Autowired标签与 @Resource标签 的区别
查看>>
人工智能凭什么毁灭人类
查看>>
[LeetCode]--349. Intersection of Two Arrays
查看>>
tomcat启动报错
查看>>
mongorocks引擎原理解析
查看>>
用Swift实现一款天气预报APP(一)
查看>>
oracle11g R2 RAC卸载grid
查看>>
ES6 结构和扩展运算符
查看>>
王利阳:电商大促 决战6.18
查看>>
kafka消息传输的事务定义
查看>>
实现LNMMP
查看>>
mysql的pid文件出现问题
查看>>
计算rem单位
查看>>
第七章 大网高级 ASA
查看>>
rsync+inotify触发式远程同步
查看>>
优秀设计师应当知道的几大UI设计原则(一)
查看>>