在 python 中,如果給定條件,我想將訊息 2 添加到 Tkinter 視窗。在這個例子中,我使用 X(時間)的值作為一個多行程,但是一旦在 Tkinter 根的回圈中,我就不能給出新的訊息(2)。
from tkinter import *
import time as t
from threading import Thread
def time1():
global x
x = 0
while x<3:
t.sleep(1)
x = 1
def gui():
root = Tk()
Label(root, text=("Message 1")).pack()
if x == 2:
Label(root, text=("Message 2")).pack()
root.mainloop()
generator = Thread(target=time1)
processor1 = Thread(target=gui)
generator.start()
processor1.start()
generator.join()
uj5u.com熱心網友回復:
在您的gui函式中,您只測驗x 一次的值,就在輸入mainloop. 如果x以后變成2,什么都不會發生。
試試這個:
import tkinter as tk
import time
from threading import Thread
def time1():
"""
Add a second Label after a certain condition is met.
"""
x = 0
while x < 3:
time.sleep(1)
x = 1
tk.Label(root, text="Message 2").pack()
if __name__ == "__main__":
root = tk.Tk()
tk.Label(root, text="Message 1").pack()
generator = Thread(target=time1)
generator.start()
root.mainloop()
來自 Python 教程:
請注意,通常不贊成
*從模塊或包匯入的做法,因為它通常會導致代碼可讀性差。但是,可以使用它來節省互動式會話中的輸入。
tkinter從主執行緒運行 GUI 被認為是一種很好的做法。這是為了確保在tkinter沒有多執行緒支持的情況下一切正常。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/486651.html
