QT入门笔记--信号和槽(附简单的C++类实现代码)
来源:互联网 发布:spine3.4 破解版 mac 编辑:程序博客网 时间:2024/06/05 16:12
*对于所有定义了信号和槽的类,在类定义开始处的Q_OBJECT宏都是必须的
*signals,slots关键字实际上是宏
*一个信号的签名必须与它的接收槽的签名相匹配(即槽其参数个数,类型,顺序必须要和对应的信号保持一致。)
*当一个信号被发射,会自动调用它所连接槽
*一个信号可以连接多个槽
*多个信号可以连接同一个槽
*一个信号可以与另外一个信号相连接
*连接可以被移除
*public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。
*protected slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。
*private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接
*关于connect()函数可查阅QT入门笔记--建立连接--connect()
下面给出信号和槽的简单C++类实现
sender.h
#ifndef SENDER_H
#define SENDER_H
#include<QObject>
class sender:public QObject
{
Q_OBJECT
public:
void send_something()
{
emit send(18);
}
signals:
void send(int i);
};
#endif // SENDER_H
receive.h
#ifndef RECEIVER_H
#define RECEIVER_H
#include<QObject>
#include<QDebug>
class receiver:public QObject
{
Q_OBJECT
private slots:
void receive(int y)
{
qDebug()<<"received number: "<<y<<endl;
}
};
#endif // RECEIVER_H
main.cpp
#include "sender.h"
#include "receiver.h"
#include<QApplication>
#include<QObject>
int main()
{
sender s;
receiver r;
QObject::connect(&s,SIGNAL(send(int)),&r,SLOT(receive(int)));
s.send_something();
return 0;
}
运行结果:
received number: 18
- QT入门笔记--信号和槽(附简单的C++类实现代码)
- 初学Qt之--带参数的信号和槽的实现(入门级)
- 初学Qt之--带参数的信号和槽的实现(入门级)
- QT 信号与槽 QT简单加法器的实现
- Qt信号和槽的实现揭秘
- Qt信号和槽的实现揭秘
- 100行纯C++代码 实现 Qt 的伪信号槽机制 - C/C++高级编程
- Qt中信号与槽的简单代码片段示例
- Qt中常见控件、布局、信号和槽的简单介绍与实现
- 实现简单的队和栈结构,附代码,图
- 简单的验证QT信号和槽的例子
- PHP和c 信号与共享内存(附简单类)-2
- Qt中自定义槽和信号的简单示例
- 关于Qt中自定义槽和信号的简单示例
- Qt中自定义槽和信号的简单示例
- 关于Qt中自定义槽和信号的简单示例
- qt creator 信号与槽 代码实现 (二)
- Qt 信号槽的实现
- 使用堆栈实现括号的匹配
- TPS和QPS的区别
- android开发中常用到的设置
- 将json合适字符串转换为json对象
- 做个文艺的IT人员——今日工作总结-2013.07.18
- QT入门笔记--信号和槽(附简单的C++类实现代码)
- [联通版] [ROM][9502][联通原版][I9502ZNUAMDH][ZNUAMDI][ZNUAME3]五件套
- 用户 NT AUTHORITY\NETWORK SERVICE 登录失败 解决方法 (MS SQL 2005)
- Combinations(组合)
- 【搜索】HDU1104
- 【Java】多态性Polymorphism
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- json解析
- Hadoop进军机器学习:Cloudera收购Myrrix共创“Big Learning”