门户
书籍
教程
论坛
问答
下载
签到
个人空间
帐号
自动登录
找回密码
密码
登录
立即注册
账号
自动登录
找回密码
密码
登录
立即注册
请绘制轨迹完成人机验证
由vaptcha提供技术支持
登录
注册
搜索
搜索
搜索
热搜
qml
quick
串口
输入中文
数据库
arm
百度地图
qt聊天
QT安装
安装
多窗口
中文乱码
聊天
局域网
鼠标
QT
图片
乱码
rs485通讯
多线程
android
多文档编辑器
本版
用户
本版
用户
【HUX】问题互助平台
博客
动态
好友
帖子
收藏
道具
勋章
任务
淘帖
动态
日志
相册
分享
记录
留言板
群组
门户
导读
排行榜
设置
我的收藏
退出
Qt开源社区
›
精华区(请在“有问必答”发帖)
›
有问必答
›
程序调试
›
有几种向 UI 线程投递任务的方法?
发布主题
返回列表
有几种向 UI 线程投递任务的方法?
2
回复
6496
查看
[复制链接]
jiajia_deng
当前离线
积分
96
jiajia_deng
尚未签到
来源:
2019-2-1 09:51:48
显示全部楼层
|
阅读模式
1
Qter豆
Qt 明确在文档中说明不允许在非 UI 线程操作 UI,也的确如果在非 UI 线程对 UI 才做,会出现崩溃的情况。
为了解决这个问题,我必须要在必须使用 UI 线程执行操作的时候投递一个信号,有时候没办法必须为不同的回调创建不同的信号函数与对应的槽函数绑定。这无疑增加了开发成本,降低了开发效率。不知道大家是否有更好的办法,在需要把任务投递到 UI 线程操作时用更方便简洁的办法?
我来回答
回复
使用道具
举报
liuxunwei
当前离线
积分
19
liuxunwei
累计签到:1 天
连续签到:1 天
2019-2-1 10:01:55
显示全部楼层
你可以通过自定的信号来实现,可以通过对应的线程发送响应的信号,然后你再对应的界面上接收这个信号,然后在实现绘制。这个信号你可以通过异的方式postEvent方式发送,如果需要同步绘制的话,那你可以通过sendEvent
回复
使用道具
举报
HangZhouLeo
当前离线
积分
27
HangZhouLeo
累计签到:11 天
连续签到:3 天
2019-2-1 11:13:34
显示全部楼层
自己维护一个消息队列,封装消息类型,槽函数根据消息类型做不同的处理
回复
使用道具
举报
返回列表
发表新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满)
我知道了