ich habe einen breakbutton, den ich versuche zu löschen.
entweder soll er aus einer threadanweisung (nach getaner arbeit) gelöscht werden oder
wenn er selbst betätigt wird (dann soll eine schleife gestoppt und der breakbutton weggenommen werden)
den code habe ich aus einem bestehenden projekt zur vereinfachung herausgebastelt...
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Tkinter as tk
from threading import Thread
import time
class MyThirdGUI(tk.Toplevel):
run_string = True
def __init__(self, first):
tk.Toplevel.__init__(self)
self.first = first
# Toplevel 1
self.title("MyThirdGUI")
self.geometry("%dx%d+%d+%d" % (350, 275, 600, 250))
self.frame_third = tk.Frame(self)
self.frame_third.pack(expand=True, fill=tk.BOTH)
self.break_button = tk.Button(self.frame_third, text="ABBRECHEN", font=('Arial', 8, 'bold'),
width=15, command=self.breaking)
self.break_button.place(relx=.5, rely=.86, anchor="c")
# Threading
self.work = Thread(target=self.working)
self.work.start()
def working(self):
for value in range(10):
print value
time.sleep(0.5)
if self.run_string is False:
break
if self.run_string is False:
self.breaking()
else:
self.closing()
def breaking(self):
global run_string
self.run_string = False
def stopping(self):
self.break_button.destroy()
def closing(self):
self.break_button.destroy()
class MyFirstGUI(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.geometry("%dx%d+%d+%d" % (300, 150, 600, 250))
self.title("MyFirstGUI")
self.frame = tk.Frame(self)
self.frame.grid_propagate(False)
self.label = tk.Label(self.frame, text="Start Page!", width=15)
self.start_button = tk.Button(self.frame, text="STARTEN", width=15, command=self.start)
self.close_button = tk.Button(self.frame, text="SCHLIESSEN", width=15, command=self.quit)
self.frame.pack(expand=True, fill=tk.BOTH)
self.label.place(relx=.5, rely=.2, anchor=tk.CENTER)
self.start_button.place(relx=.5, rely=.5, anchor=tk.CENTER)
self.close_button.place(relx=.5, rely=.75, anchor=tk.CENTER)
self.mainloop()
def start(self):
self.withdraw()
MyThirdGUI(self)
if __name__ == '__main__':
first = MyFirstGUI()
fälle wird er entfernt.
kann mir da jemand helfen, warum das so nicht funktioniert?