QT中的简单而强大的信号与槽机制
Qt 简单 机制 强大 信号
2023-09-27 14:20:16 时间
写了段信号、槽的实验程序,发现信号、槽的类声明必须在头文件中才能正确编译,因为QT的预处理程序只处理*.h文件。
main.h 源代码
#ifndef MAIN_H
#define MAIN_H
#include <QObject>
#include <iostream>
using namespace std;
class SignalObject : public QObject
{
Q_OBJECT
signals:
void signal1();
void signal2(int,int);
public:
void send1()
{
emit signal1();
}
void send2(int x, int y)
{
emit signal2(x, y);
}
};
class SlotObject:public QObject
{
Q_OBJECT
public slots:
void slot1()
{
cout << "slot1()" << endl;
}
void slot2(int x, int y)
{
cout << "slot2(" << x << ", " << y << ")" << endl;
}
};
#endif // MAIN_H
main.cpp 源代码
#include <QCoreApplication>
#include "main.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
SignalObject signal;
SlotObject slot;
QObject::connect(&signal, &SignalObject::signal1, &slot, &SlotObject::slot1);
QObject::connect(&signal, &SignalObject::signal2, &slot, &SlotObject::slot2);
signal.send1();
signal.send2(111, 222);
return a.exec();
}
相关文章
- Qt-qml元素布局
- Qt之事件处理机制
- Qt中的模态对话框和非模态对话框
- 【QT】QtCreator卸载与安装(非正常状态)
- 基于 QT(C++) 开发的贪吃蛇游戏【100010582】
- Qt音视频开发06-海康sdk内核linux客户端
- Qt编写的项目作品34-雷达模拟仿真工具(雨田哥作品)
- Qt音视频开发20-海康sdk本地播放
- Qt编写导航按钮
- 单例模式:Qt本身就提供了专门的宏 Q_GLOBAL_STATIC 通过这个宏不但定义简单,还可以获得线程安全性
- Qt之美(一):d指针/p指针详解(解释二进制兼容,以及没有D指针就会崩溃的例子。有了D指针,所使用的对象大小永远不会改变,它就是该指针的大小。这个指针就被称作D指针)good
- Qt之FTP上传/下载
- Qt之事件系统
- Qt之添加Windows资源文件(.rc文件)