Python Tkinter - schließen eines untergeordneten Fensters mit exit-button

Ich habe ein Raspberry Pi mit Piface-Adapter-platine. Ich habe eine GUI für die Ansteuerung der LED auf dem Piface board an.
Über eine Taste auf der GUI öffnet sich ein neues Fenster, das auf Knopfdruck startet und Stoppt das laufen ein kleines Stück code, um die LED ' s rauf und runter laufen kontinuierlich, wie Knight Rider Auto, kann mit einer While-Schleife in einen thread.
In diesem neuen Fenster habe ich eine EXIT-Taste. Ich möchte hinzufügen, ein Stück code, das wird schließen Sie das neue Fenster, wenn ich auf den EXIT-button, und dann, um zum Hauptfenster zurückzukehren.
Ich habe mir viele Beispiele, aber einfach nicht ganz das, was ich sehen sollte oder wo. Ich habe versucht die 'beenden', aber es geschlossen, das ganze Programm.
Nachdem wir sahen viele Beispiele, die ich vielleicht schaffen mein neuer Fenster in nicht ganz der richtige Weg, so fühlen sich frei, mir zu sagen, wenn es bessere Möglichkeiten gibt.

Also gibt es einen besseren Weg, es zu tun? Alle Hinweise wären sehr willkommen.

Vielen Dank im Voraus.

Heres ein Stück von dem code....

   def new_window(self):
        print('New Window')
        self.newWindow = tk.Toplevel(self.master)
        self.app = App2(self.newWindow)
        self.newWindow.grab_set()   # I added this line to stop opening multiple new windows

class App2:


    def __init__(self, master):

            frame = Frame(master)
            frame.pack()
            Label(frame, text='Turn LED ON').grid(row=0, column=0)
            Label(frame, text='Turn LED OFF').grid(row=0, column=1)

            self.button0 = Button(frame, text='Knight Rider OFF', command=self.convert0)
            self.button0.grid(row=2, column=0)
            self.LED0 = Label(frame, image=logo2)
            self.LED0.grid(row=2, column=1)

            self.button9 = Button(frame, text='Exit', command=self.close_window)
            self.button9.grid(row=3, column=0)


    def convert0(self, tog=[0]):

        tog[0] = not tog[0]
        if tog[0]:
            print('Knight Rider ON')
            self.button0.config(text='Knight Rider ON')
            t=threading.Thread(target=self.LED)
            t.start()
            self.signal = True    #added to stop thread
            self.LED0.config(image = logo)
        else:
            print('Knight Rider OFF')
            self.button0.config(text='Knight Rider OFF')
            self.signal = False   #added to stop thread
            self.LED0.config(image = logo2)

    def LED(self):
            while self.signal:   #added to stop thread

                a=0

                while self.signal:   #added to stop thread
                        pfio.digital_write(a,1) #turn on
                        sleep(0.05)
                        pfio.digital_write(a,0) #turn off
                        sleep(0.05)
                        a=a+1

                        if a==7:
                                break

                while self.signal:   #added to stop thread

                        pfio.digital_write(a,1) #turn on
                        sleep(0.05)
                        pfio.digital_write(a,0) #turn off
                        sleep(0.05)
                        a=a-1

                        if a==0:
                                break

    def close_window(self):
        print('Close Child window')
        #self.newWindow.destroy()   Not sure what to put here?

InformationsquelleAutor blast_uk | 2014-03-05

Schreibe einen Kommentar