您的位置:首页 > 编程语言 > Qt开发

Qt实现类似sendmessage和postmessage发送自定义消息

2016-02-17 19:29 633 查看
在用MFC中时常会用到sendmessage和postmessage特别是其他线程对GUI线程操作时,但是在QT中没有直接可用的相应函数。

QT中要达到相同的效果可以用信号和槽

在slots下自定义槽

private slots:
void OnRevertPhone(unsigned int ret, QString phone);

signals下自定义信号
signals:
void explains(); //如果要自定义槽和信号, explains信号是必须的
void revertPhone(unsigned int ret, QString password);
上面的信号只要声明就可以了,不需要实现,但是槽必须实现。

而且类声明中必须包含Q_OBJECT宏
关联信号与槽

connect(this, SIGNAL(revertPhone(unsigned int, QString)), this, SLOT(OnRevertPhone(unsigned int, QString)), Qt::QueuedConnection);

这里Qt::ConnectionType用Qt::QueuedConnection就是队列的形式,效果类似于postmessage;
然后在要发送消息的地方调用信号

emit revertPhone(*pRetcode, strPhone); //发送自定义信号前面必须用emit。

如果要类似sendmessage则用Qt::AutoConnection就可以了,也是Qt::DirectConnection
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: