6.QT信号和槽
新建项目SignalAndSlot项目
编写代码如下:
|
mysignal.h |
#ifndef MYSIGNAL_H #define MYSIGNAL_H #include <QObject> class MySignal : public QObject {
Q_OBJECT public: explicit MySignal(QObject *parent); signals: void sig(); public slots: }; #endif |
|
mysignal.cpp |
|
#include MySignal::MySignal(QObject QObject(parent) { } |
|
myslot.h |
#ifndef MYSLOT_H #define MYSLOT_H #include <QObject> class MySlot : public QObject {
Q_OBJECT public: explicit MySlot(QObject *parent); signals: public slots: void slot(); }; #endif // MYSLOT_H |
|
myslot.cpp |
|
#include #include MySlot::MySlot(QObject QObject(parent) { } void { qDebug() } |
|
Main.cpp |
#include <QCoreApplication> #include "mysignal.h" #include "myslot.h" /* *1)信号的定义必须在signals:保留字下,并且不需要实现 *2)槽的定义必须在slots:保留字下,需要实现 *3)信号和槽通过QObject::connect函数连接 *4)当信号被触发是,槽函数被调用 * *需要注意的是: *1) 信号的定义必须在signals:保留字下,并且不需要实现 *2)槽的定义必须在slots:保留字下,需要实现 *3)信号和槽通过QObject::connect函数连接 *4)当信号被触发时,槽函数被调用 * *需要注意的是: *1)信号和槽,是QT的拓展,所以实现信号和槽的类,必须是QObject的子类 *2)实现信号和槽的类,必须以宏Q_OBJECT开始 *3)连接信号和槽,要用到SIGNAL和SLOT宏,转换函数为字符串 *4)一个信号可以和多个槽连接,槽函数调用的顺序是不确定的 *5)多个信号可以同时连接一个槽 *6)信号可以连接信号,形成信号传导 *7)信号和槽的参数应该一样多,而且类型必须相同 *8)信号和槽都可以重载 *9)信号和槽都可以有默认参数 *10)槽函数可以像普通函数一样被调用 *11)在槽函数中,调用sender可以获得信号调用者 * * 总结下: * 一个类:QObject * 三个宏:Q_OBJECT SIGNAL SLOT * 三个保留字:signals, slots, emit */ int main(int argc,char** argv) {
QCoreApplication app(argc,argv); MySignal sig; MySlot slot; //通过QObject的connect实现信号和槽函数之间的关联, //当调用了信号之后槽函数也相应的被调用了 QObject::connect(&sig, SIGNAL(sig()), &slot, SLOT(slot())); //通过下面一行实现发射一个信号 emit sig.sig(); return app.exec(); } |
|
运行结果: |
6.QT信号和槽的更多相关文章
- QT 信号与槽connect
QT 信号与槽connect QT 信号与槽connect connect函数调用几个限制 connect函数代码 QT中信号与槽的连接使用的connect函数是一个静态函数,在类QObject中定义 ...
- Qt 信号与槽
Qt信号与槽的理解 信号和槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和槽有所了解.信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重 ...
- QT信号和槽
QT信号和槽 ============ 信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性.要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler) ...
- Qt信号与槽自动关联机制
参考链接1:http://blog.csdn.net/skyhawk452/article/details/6121407 参考链接2:http://blog.csdn.net/memory_exce ...
- Qt信号与槽应用实例一
..... connect(m_pGlobelWidget,signal(globeControlClick(object,object)),this,slot(globeControlClick(o ...
- Qt 信号和槽函数
信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性.当某个信号被发射,就需要调用与之相绑定的槽函数.这与Windows下的消息机制类似,消息机制是基于回调函数.一个回调即是一个函数的 ...
- QT 信号与槽连接
转帖 http://www.cnblogs.com/cnhome/archive/2009/10/01/1577277.html 信号(SIGNAL)和槽(SLOT)是Qt编程的一个重要部分.这个机制 ...
- Qt信号和槽的个人总结
1.connect connect(sender,SIGNAL(signal()),receiver,SLOT(slot())); 这里用到了两个宏:SIGNAL() 和SLOT():通过connec ...
- QT 信号与槽 QT简单加法器的实现
信号与槽 背景: 面向过程 模块之间低耦合设计(高内聚). 函数调用: 直接调用 回调调用(低耦合) 面向对象 模块之间低耦合设计(高内聚) 对象调用 直接调用 接口调用 QT: 信号与槽解决问题: ...
- 关于Qt信号与槽机制的传递方向性研究(结论其实是错误的,但是可以看看分析过程)
最近由于项目的需求,一直在研究Qt.信号与槽机制是Qt的一大特色,该机制允许两者间传递参数,依次来实现对象间的通信.这个参数会分别存在于信号的参数列表和槽函数的参数列表中.需要注意的是,若将槽函数绑定 ...
随机推荐
- ●HDU 4787 GRE Words Revenge
题链: http://acm.hdu.edu.cn/showproblem.php?pid=4787 题解: AC自动机(强制在线构造) 题目大意: 有两种操作, 一种为:+S,表示增加模式串S, 另 ...
- poj 1845 (逆元 + 约数和)
题意: 求A^B的所有约数(即因子)之和,并对其取模 9901再输出. 思路: A可以表示为A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 其中pi均为素数 那么A的 ...
- 基于SSE4和多核编程的电子相册的实现
基于SSE4和多核编程的电子相册的实现 摘要:电子相册中前后两张图片的切换会产生淡入淡出效果,而且切换过程中需要大量的中间计算过程,而SSE4和多核编程技术能够有效加快中间的计算过程,有效减少图片 ...
- Python中模块之os的功能介绍
Python中模块之os的功能介绍 1. os的变量 path 模块路径 方法:os.path 返回值:module 例如:print(os.path) >>> <module ...
- H3C S3100交换机配置VLAN和远程管理
一.基本设置 1. console线连接成功 2. 进入系统模式 <H3C>system-view //提示符由<H3C> 变为 [H3C] 3. 更改设备名称 [H3C]sy ...
- MySql查询不区分大小写解决方案(两种)
当我们输入不管大小写都能查询到数据,例如:输入 aaa 或者aaA ,AAA都能查询同样的结果,说明查询条件对大小写不敏感. 解决方案一: 于是怀疑Mysql的问题.做个实验:直接使用客户端用sql查 ...
- 使用pscp实现Windows 和 Linux 服务器间的远程拷贝文件
在工作中,每次部署应用时都需要从本机Windows 服务器拷贝文件到Linux 上,有时还将Linux 上的文件拷到本机,这些操作都是可以使用pscp实现的.下文将详细描述如何使用: PSCP (Pu ...
- 手把手教你全家桶之React(一)
前言 最近项目用到react,其实前年我就开始接触react,时光匆匆,一直没有时间整理下来(太懒啦)!如今再次用到,称工作间隙,对全家桶做一次总结,项目源码地址.废话不多说,上码. 创建一个文件目录 ...
- CentOS, Fedora, or Red Hat一行命令安装apache + mysql + php 及各种依赖库
sudo sh -c "yum install httpd httpd-devel mysql mysql-server mysql-devel php php-mysql php-comm ...
- 利用百度接口进行人脸识别并保存人脸jpg文件
利用百度接口进行人脸识别,根据返回的人脸location用opencv切割保存. # coding : UTF-8 from aip import AipFace import cv2 import ...