尝试从另一个线程更改tkinter标签时出错

2024-09-30 10:40:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有线。和一个主GUI线程。我正在尝试更改GUI线程上的标签,形成thread1。我在线程上传递label变量作为参数。但我得到了以下错误:

UnpickleableError: Cannot pickle objects

如何在主GUI线程/类之外更改GUI元素

class MyFirstGUI:
    communicationQueue=Queue()
    def __init__(self, master):
      thisLabel = Label(master, text="Test")
      thisLabel.pack()
      tempThread=testThread(thisLabel)
      tempThread.start()

class testThread(Thread):
    def __init__(self, label):
      label["text"]="something"

Tags: textselfmasterinitdefgui标签线程
1条回答
网友
1楼 · 发布于 2024-09-30 10:40:58
import tkinter as tk
import threading, random, time

class MyFirstGUI:
    def __init__(self, master):
      self.label = tk.Label(master, text = "Test")
      self.label.pack()

    def update(self):
        while True:
            self.label["text"] = random.randint(1, 1000)
            time.sleep(1)


root = tk.Tk()

GUI = MyFirstGUI(root)

loop = threading.Thread(target = GUI.update).start()

root.mainloop()

我想这就是你的要求。在

相关问题 更多 >

    热门问题