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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zyx4843/article/details/50682212

在用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


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页