Qt 笔记:多线程与界面组件的通信(上)

是否可以在子线程中创建界面组件?

class TestThread : public QThread
{
    Q_OBJECT

protected:
    void run()
    {
        QWidget w;
        
        w.show();
        
        exec();
    }

}

子线程如何对界面组件进行更新?

解决发哪敢-信号与槽

-在子线程类中定义界面组件的更新信号(updateUI)

-在主窗口类中定义更新界面组件的槽函数(setInfo)

-使用异步方式连接更新信号到槽函数(updateUI -》setInfo)

·子线程通过发射信号的方式更新界面组件

·所有的界面组件对象只能依附于主线程

ps:子线程不能直接操作界面组件,但是可以通过信号与槽的机制间接操作界面插件

总结:

-现代GUI平台值许在主线程中直接操作界面组件

-Qt总可以借助信号与槽的机制在子线程中操作界面组件

-进行信号与槽的连接时必须采用异步连接的方式

-界面组件对象必须依附于主线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值