我在玩 tkinter 和 multiprocessing 包和全域變數。我無法在按下按鈕時設定變數。當它被釋放時,它的值不會保持不變,而是恢復到以前的狀態。非常感謝您的幫助。這是MVP。
from multiprocessing import Process
from tkinter import *
import time
root = Tk()
var_a = 10
def set_callback():
global var_a
var_a = int(e1.get())
print(var_a)
def pro_function():
while True:
print(var_a)
time.sleep(0.1)
e1 = Entry(root)
e1.pack(pady=12)
button1 = Button(root, text="Set Var", command = set_callback )
button1.pack(pady=12)
if __name__ == '__main__':
root.geometry('350x218')
root.title("PythonLobby")
x = Process(target=pro_function)
x.start()
root.mainloop()
x.join()
uj5u.com熱心網友回復:
您已經創建了一個全新的 PROCESS 來進行監控。該行程有自己的記憶體空間,與運行 GUI 的行程完全分開。如果您使用了一個簡單的執行緒來進行監控,您會發現它作業得很好。只需更換
x = Process(target=pro_function)
和
x = threading.Thread(target=pro_function)
你會看到值按預期更新。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/360441.html
