Qt 第一章 建立连接

简介:
1.2建立连接
第二个例子要说明的是如何响应用户的动作。应用程序由一个按钮构成,用户可以单击这个按钮退出程序。QPushButton做窗口部件,与QLabel不同之处.第一个窗口部件不一样,第二QPushBotton要用的信号与槽,当点击PushButton以后,Qt就会响应这个动作将与一段代码连接起来响应退出。
编写的程序与QLabel标签窗口部件实现很相似。
#include <QApplication>
//定义一个QtQApplication类头文件,所有的Qt图形化应用程序都必须包含此文件,它包含了Qt图形化应用程序的各种资源、基本设置、控制流以及事件处理等。如果Qt的非图形化应用程序,则需包含<QCoreApplication>
#include <QPushButton>
//定义一个QPushButton类头文件,对于每个类的公众QtApplication的一部分,存在着一个相同的名称包含其定义的头文件。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构造函数需要两个参数,分别是argcargv,以便QApplication可以处理一些标准命令参数。所有的命令行参数被Qt确认删除从argv中获取,和argc相应递减。
       QPushButton *button = new QPushButton(“Quit”);
//创建一个button按钮对象,并设置为显示文本”Quit”,因为没有指定父窗口,因此按钮将是其自己的窗口,有窗口框架和标题。
       QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()));
//这里QObject::connectQt的最重要的特征。Connect()是QObject的静态函数,这个connect()调用之间建立了两个Qt对象(对象继承QObject,直接或间接)单向连接,这里的对象为button,QApplication应用程序自身的对象appQt的每个对象可以有两个信号(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命令创建一个名为quitC++程序源文件
#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,如需转载请自行联系原作者

目录
相关文章
|
6月前
《QT从基础到进阶·四》信号槽的多种连接方式
《QT从基础到进阶·四》信号槽的多种连接方式
69 0
|
6月前
|
C++
《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互
《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互
53 0
|
关系型数据库 MySQL 数据库
Qt连接Mysql数据库(含代码)
Qt连接Mysql数据库(含代码)
274 0
Qt连接Mysql数据库(含代码)
|
网络协议 C++ Windows
西门子S7-200SMART入门,如何建立通信连接,如何创建程序
西门子S7-200SMART入门,如何建立通信连接,如何创建程序
西门子S7-200SMART入门,如何建立通信连接,如何创建程序
|
druid 安全 关系型数据库
【笔记】用户指南—网络与连接—连接数据库
PolarDB-X支持通过数据管理DMS、MySQL命令行、第三方客户端以及符合MySQL官方交互协议的第三方程序代码进行连接。本文主要介绍如何通过MySQL命令行连接到PolarDB-X数据库。
|
关系型数据库 MySQL 数据库连接
C#连接Mysql数据库,我的第一个wpf项目记录
C#连接Mysql数据库,我的第一个wpf项目记录
C#连接Mysql数据库,我的第一个wpf项目记录
|
消息中间件 C# Windows
WPF的“.NET研究”消息机制(一)- 让应用程序动起来
  前言   谈起“消息机制”这个词,我们都会想到Windows的消息机制,系统将键盘鼠标的行为包装成一个Windows Message,然后系统主动将这些Windows Message派发给特定的窗口,实际上消息是被Post到特定窗口所在线程的消息队列,应用程序的消息循环再不断的从消息队列当中获取消息,然后再派发给特定窗口类的窗口过程来处理,在窗口过程中完成一次用户交互。
996 0
|
测试技术
VS2010 测试功能之旅:编码的UI测试(4)-通“.NET研究”过编写测试代码的方式建立UI测试(上)
  回顾   在之前的入门篇系列中,分别介绍了一个简单的示例, 操作动作的录制原理,通过修改UIMap.UItest文件控制操作动作代码的生成,对象的识别原理。接下来正式进入我们UI测试的进阶篇,在这一章,将讲述如何初步通过自己编写代码的方式来建立UI测试。
939 0
|
Linux 定位技术 开发工具
Qt简介以“.NET研究”及如何配置Qt使用VS2010进行开发
  Qt是神马东西?   Qt – 一个跨平台应用程序和UI开发框架   它包括跨平台类库、集成开发工具和跨平台 IDE。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
1076 0
|
消息中间件 C# Windows
一起谈.NET技术,WPF的消息机制(一)- 让应用程序动起来
  前言   谈起“消息机制”这个词,我们都会想到Windows的消息机制,系统将键盘鼠标的行为包装成一个Windows Message,然后系统主动将这些Windows Message派发给特定的窗口,实际上消息是被Post到特定窗口所在线程的消息队列,应用程序的消息循环再不断的从消息队列当中获取消息,然后再派发给特定窗口类的窗口过程来处理,在窗口过程中完成一次用户交互。
1422 0