搜索
bottom↓
回复: 6
打印 上一主题 下一主题

多线程工作时函数进入while true循环后无法设置文本该如何解决?

[复制链接]

出10入0汤圆

跳转到指定楼层
1
发表于 2024-4-11 09:20:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

datafetch函数作为一个线程,持续获取参数,并将参数打印出来并设置为ui中的相应文本
但是当makesure进入while True循环时,虽然datafetch仍然持续进行,并打印参数,但是无法调用setText函数修改ui中相应文本的文本值,有没有比较懂这个逻辑原理的,帮忙解释一下,谢谢

本帖子中包含更多资源

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

x

出0入0汤圆

2
发表于 2024-4-11 10:20:44 | 只看该作者
别的线程不是只要提供数据给界面的线程吗?你这不是卡住主界面刷新吗

出0入0汤圆

3
发表于 2024-4-11 10:47:16 | 只看该作者
一般情况下,刷新 UI,都不会是在数据处理线程中,一个是有权限,一个是UI 刷新本身慢,刷新太快你看不过来也没有意义

正常的逻辑是数据处理是数据处理的逻辑,死循环里一直刷 UI,在哪种编程语言里,情况都差不多

出1070入962汤圆

4
发表于 2024-4-11 12:06:54 | 只看该作者
古二真!

你的线程在while true死循环,UI线程根本得不到执行权去刷新界面,界面怎么可能变化呢?
至于print输出,那是python的标准输出,和UI无关,因为UI不是python自己的

提个建议,提问题最好把前因后果,上下文都说一下,使用的设备,机器,软件工具环境什么的,
也方便回答问题的人快速锁定问题核心

出10入0汤圆

5
 楼主| 发表于 2024-4-11 14:50:47 | 只看该作者
Appcat 发表于 2024-4-11 12:06
古二真!

你的线程在while true死循环,UI线程根本得不到执行权去刷新界面,界面怎么可能变化呢?
(引用自4楼)

我写的while True是有跳出循环的条件的,大概就是在到达一个位置后跳出循环,在循环实时获取电机位置和速度并修改ui界面的文本值。我理解你的意思,在循环中ui得不到执行权,没办法更新,那该怎么修改比较好呢?

出1070入962汤圆

6
发表于 2024-4-11 16:11:43 | 只看该作者
小马快跑777 发表于 2024-4-11 14:50
我写的while True是有跳出循环的条件的,大概就是在到达一个位置后跳出循环,在循环实时获取电机位置和速 ...
(引用自5楼)

pyQT我不熟,而且因为商业授权的问题,公司也不允许使用,这里就不能给你直接指导了,万一弄错耽误了你

你这个问题是典型的任务调度,底下需要实时从接口或者设备拿数据,然后需要UI及时更新,UI的更新速度,接口数据
的速度,就是一对矛盾;

实时数据非常快,使用while true读取这样最及时,但是UI更新就不能及时了,所以要权衡一下,
如果数据速度没有那么快,是不是可以用一个定时任务去读数据(不要用线程),然后回到主线程UI自然就更新。

但是如果数据速度非常高,即使实现了UI的及时更新,也没有实际意义,因为人眼始终是慢的,界面会根本看不清。

那么还有一种思路,就像python的signal模块,有点模仿硬件中断的思路,让数据到来时触发一个信号,然后预定义
的信号处理函数完成对数据的处理,全部工作都在主进程中完成,也无需专门的线程参与

出10入0汤圆

7
 楼主| 发表于 2024-4-11 23:01:01 | 只看该作者
Appcat 发表于 2024-4-11 16:11
pyQT我不熟,而且因为商业授权的问题,公司也不允许使用,这里就不能给你直接指导了,万一弄错耽误了你

...
(引用自6楼)

okok,谢谢了,确实不需要这么快的更新速度
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 22:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表