Ich möchte ein Etikett aktualisieren, sobald ich einen der Knöpfe drücke. Hier ist mein Code - ich ein Etikett (caled label1
) hinzugefügt, jetzt habe ich zwei Fragen:Wie aktualisiere ich das Etikett auf tkinter
- Es stellt einige Kauderwelsch
- Wie ich das Etikett mit Text rechts aktualisiere wenn der Benutzer das Durchsuchen drängt Taste?
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()
Verwendung 'self.label1' Zugang zu erhalten zu' Label'. BTW: 'self.label_1' ist eine Funktion und es hat keinen Sinn, sie als Text zu verwenden -' text = self.label_1'. BTW: 'print' sendet nur Text auf dem Bildschirm - er weist der Variablen keinen Wert zu - benutze' return' anstelle von 'print' in der Funktion' label_1' und dann kannst du 'text = self.lable_1()' - mit machen '()' am Ende. – furas
BTW: in tkinter können Sie 'root.after (milisecond, function_name)' verwenden, um die Funktion periodisch auszuführen und vielleicht brauchen Sie keine Threads. – furas
Haben Sie diese Website nach einer Antwort durchsucht, bevor Sie diese Frage gestellt haben? Es gibt viele Beispiele für Programme, die ein Label aktualisieren, und viele, die dies wiederholt tun, ohne Threads zu verwenden. –