Qt自定义信号

2023-11-16

QT

Qt自定义信号

Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法。作为一种通用的处理机制,信号与反应槽非常灵活,可以携带任意数量的参数,参数的类型也由用户自定。同时其本身也是类型安全的,任何一个从QObject或其子类继承的用户类都可以使用信号与反应槽。 Qt类中想要实现发送信号必须继承QObject类,同时类中需要添加Q_OBJECT宏:

class test: public QObject
{
    Q_OBJECT
public:
    test();
    ~test();
}

声明信号函数,信号函数不需要实现:

class test: public QObject
{
    Q_OBJECT
public:
    test();
~test();
signals:
    void signal(QString);
}

发送信号,使用emit 发送信号:

void send()
{
  emit signal(“send signal”);
}

对于自定义类型,通过singal和slot传递时,必须使用qRegisterMetaType("xx")注册为元数据类型: 例:

struct struct1{
int x;
double d;
}
qRegisterMetaType<struct1>(“struct1”);

 https://www.ebaina.com/articles/140000004853

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt自定义信号 的相关文章

  • 测试内存超频软件,内存超频工具(SPDtool)

    都知道CPU可以超频 这一点儿也不稀奇 不过 今天小编带给大家的这款spdtool可是传说中的内存超频软件 震惊了吧 现在的游戏画面越来越精致 场景也越来越大 所以 对内存的要求也更高了 这款内存超频工具也就应运而生了 本软件利用修改spd
  • Leaflet基础入门教程(一)

    leaflet是一个前端的轻量的gis框架 为什么说它轻量呢 因为相比于传统的 庞大的 GIS框架比如openlayers和mapbox leaflet不仅代码体积小 而且API构成也极为简单 是GIS行业小白入门级别学习的最好的框架 没有
  • 【AI面试】Anchor based 、 Anchor free 和 no anchor 的辨析

    深度学习的目标检测算法 通常会在输入图像中采样大量的区域 然后判断这些区域中是否包含我们感兴趣的目标 并调整 回归 区域边界 从而更准确地预测目标的真实边界框 ground truth bounding box 目标检测算法会需要做两个事情
  • Maven deploy plugin使用

    Maven deploy plugin使用 简介 maven deploy plugin主要是为了用来将artifact部署到远程仓库中 Goals Goal Description deploy deploy 部署artifact到远程仓
  • 自然语言处理(NLP)精选13道面试题

    文末彩蛋 七月在线干货组最新升级的 名企AI面试100题 免费送 1 为什么BERT在第一句前会加一个 CLS 标志 BERT在第一句前会加一个 CLS 标志 最后一层该位对应向量可以作为整句话的语义表示 从而用于下游的分类任务等 为什么选

随机推荐