找回密码
 立即注册
收起左侧

有几种向 UI 线程投递任务的方法?

2
回复
785
查看
[复制链接]

尚未签到

来源: 2019-2-1 09:51:48 显示全部楼层 |阅读模式
1Qter豆
     Qt 明确在文档中说明不允许在非 UI 线程操作 UI,也的确如果在非 UI 线程对 UI 才做,会出现崩溃的情况。

     为了解决这个问题,我必须要在必须使用 UI 线程执行操作的时候投递一个信号,有时候没办法必须为不同的回调创建不同的信号函数与对应的槽函数绑定。这无疑增加了开发成本,降低了开发效率。不知道大家是否有更好的办法,在需要把任务投递到 UI 线程操作时用更方便简洁的办法?

回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2019-2-1 10:01:55 显示全部楼层
你可以通过自定的信号来实现,可以通过对应的线程发送响应的信号,然后你再对应的界面上接收这个信号,然后在实现绘制。这个信号你可以通过异的方式postEvent方式发送,如果需要同步绘制的话,那你可以通过sendEvent
回复

使用道具 举报

累计签到:11 天
连续签到:3 天
2019-2-1 11:13:34 显示全部楼层
自己维护一个消息队列,封装消息类型,槽函数根据消息类型做不同的处理
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册