簡體   English   中英

python 從 tkinter 小部件設置全局變量

[英]python set global variable from tkinter widget

我在玩 tkinter 和多處理 package 和全局變量。 按下按鈕時無法設置變量。 當它被釋放時,它的值不會保留,而是恢復到它之前的 state。 非常感謝您的幫助。 這里是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()

您已經創建了一個全新的 PROCESS 來進行監控。 該進程有自己的 memory 空間,與運行 GUI 的進程完全分開。 如果您使用一個簡單的線程來進行監控,您會發現它工作得很好。 只需更換

    x = Process(target=pro_function)

    x = threading.Thread(target=pro_function)

您會看到值按預期更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM