ich ein Python-Programm, das wie dieses jedochAufruf pack_forget() in einem Thread
from tkinter import *
import threading, time
def cancel():
print ("Stop!")
def thread():
threading.Thread (target = new).start()
def new():
b.pack_forget()
c = Canvas (root, width = 200, height = 25, bg = "white")
c.pack()
Button (root, text = "OK", command = root.destroy).pack()
try:
for x in range (200):
time.sleep (0.02)
c.create_rectangle ((x, 2, x + 1, 26), outline = "green", fill = "green")
root.destroy()
except: pass
root = Tk()
root.title ("Threading")
b = Button (root, text = "Begin.", command = thread)
b.pack()
root.mainloop()
sieht, stürzt es jedes Mal, wenn ich die pack_forget() aufrufen. Ich weiß, dass ich tun kann, es wie folgt aus:
from tkinter import *
import threading, time
def cancel():
print ("Stop!")
def thread():
b.pack_forget()
threading.Thread (target = new).start()
def new():
c = Canvas (root, width = 200, height = 25, bg = "white")
c.pack()
Button (root, text = "OK", command = root.destroy).pack()
try:
for x in range (200):
time.sleep (0.02)
c.create_rectangle ((x, 2, x + 1, 26), outline = "green", fill = "green")
root.destroy()
except: pass
root = Tk()
root.title ("Threading")
b = Button (root, text = "Begin.", command = thread)
b.pack()
root.mainloop()
Für andere Programme, aber ist es möglich, pack_forget in einem Thread zu nennen. Vielen Dank.
Ihr erster Block läuft für mich, aber ich hatte Probleme in der Vergangenheit mit tkinter Objekte aus mehreren verschiedenen Threads zu steuern. Ich würde das nicht empfehlen. Warum benutzt du nicht die 'after' Methode von tkinter anstatt eines Threads? – Novel
Dies ist ein Demonstrationsprogramm. In meinem vollen Programm verwende ich es auf einem Stück Code, der in der Zeit, die bis zum Ende benötigt wird, massiv variiert. –
In deinem echten Programm versuchst du auch, einen Fortschrittsbalken zu steuern? Die Verwendung von tkinter-Variablen ist threadsafe, so dass Sie Ihren Fortschrittsbalken an eine IntVar binden und dann int_var.set() vom anderen Thread aufrufen können. – Novel