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

QT多线程和UI界面交互问题

2
回复
116
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 6 天前 显示全部楼层 |阅读模式
1Qter豆
需求是这样的:
我有一批文本数据,一行一个,成千上万个,可以导入到程序里,需要用多线程循环处理直到处理完毕
我希望线程处理的时候,把状态变化和最终结果显示到程序界面上(期望是listview)
比如,状态有,第一步,第二步,...,最终结果有成功,失败,异常,...

可是qt不能在其他线程,修改UI界面,要怎么来弄这个通讯合理一点呢?
(是不是只有跨线程的信号和槽,这样会不会有效率问题?每次状态更新,都要反应到界面上)

之前用vc,一般做法是:
1,先导入文本到listview,状态置空
2,启动多个线程
3,多个线程,加锁,从listview读取状态为空的条目内容,同时把状态更改为非空
4,重复从listview读取,直到没有更多内容

这种方式,就是不单独存储数据,完全依赖listview的的数据。

QT想实现这个需求,最合理的办法是什么呢?


回复

使用道具 举报

累计签到:6 天
连续签到:3 天
5 天前 显示全部楼层
只有看的没有回答得人,淦,我刚学2个月,这问题我真不会
回复

使用道具 举报

累计签到:719 天
连续签到:2 天
3 天前 显示全部楼层
线程中读取处理数据,每次处理完成发送信号到主线程,主线程绑定该信号到对应的槽函数,槽函数刷新 listView 界面即可.


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

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

送书活动公告
《Qt Creator快速入门》(第四版)已上市,为了感谢广大Qter的支持,本次决定给Maverick、chenycs、snolkmg、程默的叛逆者、w642833823等5位论坛元老进行赠书,请看到通知后,及时回复站长留言,发送收货地址、联系人和手机号。谢谢大家的支持! 我知道了