Qt 第一章 建立连接

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++ 程序源文件
Qt 第一章 建立连接_第1张图片
#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 �Cproject
// 执行 qmake �Cproject 生成一个与平台无关的 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就介绍到这里。。。感谢您的阅读。。

你可能感兴趣的:(职场,qt,Signal,休闲,SLOT)