首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当执行Tk按钮的功能并在其中创建标签时,gui不会立即更新。

当执行Tk按钮的功能并在其中创建标签时,gui不会立即更新。
EN

Stack Overflow用户
提问于 2021-02-05 18:14:58
回答 1查看 49关注 0票数 2

我是python语言的新手,已经学习和使用它两天了。我正在写一段代码,将grbl文件发送到我的数控机床。

我的代码:

代码语言:javascript
运行
复制
    def grbl_sturing(Gcode_file):

         print('running')
         lbl_Running = Label(root, text="running")
         lbl_Running.grid(row=0, column=2)

         #Grbl setup
         poort = serial.Serial('com11',115200)
         code = open(Gcode_file,'r');
         poort.write(b'\r\n\r\n')
         time.sleep(2)   
         poort.flushInput() 
 
         #sturing 
         for line in code:
              l = line.strip() 
              print ('Sending: ' + l)
              poort.write(l.encode() + b'\r\n') 
              grbl_out = poort.readline()
              print (' : ' + str(grbl_out.strip()))
 
         #Grbl afsluiten
         code.close()
         poort.close()

所以当我按下tkinter窗口中的一个按钮时,我会转到这个函数。我的意图是在标签和命令中让我知道程序正在发送/运行的位置。但当我按下这个按钮时,我的命令显示如下:

代码语言:javascript
运行
复制
running
Sending: $H
 : b'ALARM:9'

别担心闹钟响了,因为数控机床没电。

在cmd中,它像结束一样工作,但当我在tkinter窗口中查看时,它会先运行,当它完成时,它会显示它正在运行。它为什么要这样做,我如何修复它?提前谢谢你。

ps(对不起,我的英语不好)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-05 18:42:56

因此,这里发生的情况是,您正在创建标签,但GUI直到稍后才会更新,要使其按该顺序更新,您必须使用以下代码行:

代码语言:javascript
运行
复制
 TK.update()

其中TK是强制接口在此时更新的tkInter变量,而不是等待主循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66061388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档