小马快跑777 发表于 2024-4-9 21:03:04

while True循环中不能设计ui的文本值,该如何解决

本帖最后由 小马快跑777 于 2024-4-9 21:21 编辑


获取的值可以用print打印出来,但是不能用来设置ui中文本的值,有大佬可以解释一下为什么吗?

yuyu87 发表于 2024-4-9 21:06:55

那ui值是啥?为空还是运行报错?还是乱码?不能让人猜啊

armok. 发表于 2024-4-9 21:10:40

“while True循环问题”标题不合格。请自行修正。(注意:主题发出24小时后就不能修改帖子)

帖子标题必须能充分说明帖子的内容。如你要问AVR的ADC如何才能测量得比较准确,“AVR的ADC如何消除干扰测量得比较准确?”是合格的标题。不合格举例:
    1:小女子冰天雪地裸体跪求解决方法
    2:救命啊...
    3:高手请出招,一个无法解决的AVR问题
    4:一个困扰学习单片机初学者,惊动单片机开发者的难题
    5:AVR的ADC测量   (点评:你到底是问问题,或是有技术心得与大家分享?)

yyts 发表于 2024-4-9 21:14:47

很多是不能在非主线程里面直接操作ui的

小马快跑777 发表于 2024-4-9 21:16:00

yuyu87 发表于 2024-4-9 21:06
那ui值是啥?为空还是运行报错?还是乱码?不能让人猜啊
(引用自2楼)

就是值没有改变,代码能正常运行

小马快跑777 发表于 2024-4-9 21:17:03

while True循环中不能改变ui文本的值,该如何解决?

yyts 发表于 2024-4-9 21:14
很多是不能在非主线程里面直接操作ui的
(引用自4楼)

那该怎么解决呢

zyqcome 发表于 2024-4-10 07:12:29

切换到 主线成呀,老铁,runOnUiThread

小马快跑777 发表于 2024-4-11 08:56:12

zyqcome 发表于 2024-4-10 07:12
切换到 主线成呀,老铁,runOnUiThread
(引用自7楼)

调用其他函数时就可以用setText函数改变文本,但是这个函数中while循环里就不行啊?

智涅 发表于 2024-4-11 09:08:39

用的什么GUI框架呢?有可能整个程序只有一个线程,GUI和你执行的代码共用一个线程,你执行的代码一直占用,GUI更新无法执行。像PYQT是要用信号和槽的方式进行传递/调用

小马快跑777 发表于 2024-4-11 09:22:11

智涅 发表于 2024-4-11 09:08
用的什么GUI框架呢?有可能整个程序只有一个线程,GUI和你执行的代码共用一个线程,你执行的代码一直占用 ...
(引用自9楼)

是pyQT,之前用的栈好像也差不多

小马快跑777 发表于 2024-4-11 09:23:35

智涅 发表于 2024-4-11 09:08
用的什么GUI框架呢?有可能整个程序只有一个线程,GUI和你执行的代码共用一个线程,你执行的代码一直占用 ...
(引用自9楼)

但是在运行其他函数时,datafetch函数还是可以运行并打印参数的,只是不能修改ui中的文本

智涅 发表于 2024-4-11 09:41:11

小马快跑777 发表于 2024-4-11 09:23
但是在运行其他函数时,datafetch函数还是可以运行并打印参数的,只是不能修改ui中的文本 ...
(引用自11楼)

我曾经试过用bound方式绑定label和数据然后主动调用类似update刷界面,用一段时间后部分label的数据就不刷新了,最后还是乖乖全部用信号进行传递。

zwhzwh_11 发表于 2024-4-11 12:16:54

网上搜subingwen.cn qt多线程,希望能有启发

zstu2012 发表于 2024-4-11 12:59:47

去掉sleep或者改定时器方式试下
页: [1]
查看完整版本: while True循环中不能设计ui的文本值,该如何解决