【发布时间】:2017-03-21 05:38:08
【问题描述】:
我想在按下其中一个按钮后更新标签。
这是我的代码 - 我添加了一个标签(称为 label1),现在我有两个问题:
- 它呈现出一些乱码
- 如何在用户按下“浏览”按钮时使用文本更新标签?
from tkinter import *
import threading
class Window(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self):
self.var = IntVar()
self.master.title("GUI")
self.pack(fill=BOTH, expand=1)
quitButton = Button(self, text="Exit", command=self.client_exit)
startButton = Button(self, text="Browse", command=self.start_Button)
label1 = Label(self, text=self.lable_1)
quitButton.grid(row=0, column=0)
startButton.grid(row=0, column=2)
label1.grid(row=1, column=0)
def client_exit(self):
exit()
def lable_1(self):
print('starting')
def start_Button(self):
def f():
print('Program is starting')
t = threading.Thread(target=f)
t.start()
root = Tk()
root.geometry("250x50")
app = Window(root)
root.title("My Program")
root.mainloop()
【问题讨论】:
-
使用
self.label1访问Label。顺便说一句:self.label_1是函数,将其用作文本毫无意义 -text=self.label_1。顺便说一句:print仅在屏幕上发送文本 - 它不会为变量赋值 - 在函数label_1中使用return而不是print然后你可以使用text=self.lable_1()- 最后使用(). -
顺便说一句:在 tkinter 中,您可以使用
root.after(milisecond, function_name)定期运行函数,也许您不需要线程。 -
在提出这个问题之前,您是否在本网站上搜索过答案?有许多更新标签的程序示例,并且许多不使用线程重复执行此操作。
标签: python python-3.x tkinter label