Multiple Fenster nacheinander öffnen

Fragen zu Tkinter.
Antworten
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

hi
ich bin mal wieder auf euch angewiesen :)
ich möchte drei tkinter-fenster nacheinander öffnen, wobei das letzte dann mit einem schliessen-button geschlossen werden soll, in den
übrigen soll mit einem weiter-button das nächste fenster angezeigt werden.
...mittlerweile is es schon spät, gut, dass i morgen frei hab...

Code: Alles auswählen

a = [1,2,3]
b = len(a)

for index in a:

    print 'Fenster'+str(index)
    print index
    print b
    print '---'

    fenster = Tk()
    fenster.title('DMD-DATA.soft')
    fenster.geometry('+350+50')

    def shutWeiter():
        fenster.destroy()
        naechstes()

    def shutSchliessen():
        fenster.destroy()

    if index != b:
        b_f1 = Button(fenster, text = 'Weiter', width=18, relief="raised", bg='#d3d3d3', fg="#000000000", justify='center', command=shutWeiter)
        b_f1.grid(row=7, column=3, columnspan=2)

    else:
        b_f2 = Button(fenster, text = 'Schliessen', width=18, relief="raised", bg='#d3d3d3', fg="#000000000", justify='center', command=shutSchliessen)
        b_f2.grid(row=7, column=3, columnspan=2)

    fenster.mainloop()
ich hab den loob schon mit einem break-befehlt versucht zu unterbrechen, naja...
Zuletzt geändert von Anonymous am Donnerstag 31. Dezember 2015, 10:34, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@DMD-OL: Die Schleife endet doch automatisch nach dem letzten Element. Der Quelltext ist aber nicht lauffähig, da fehlen Importe und `naechstes()` ist nicht definiert.

Edit:

Code: Alles auswählen

#!/usr/bin/env python
# coding: utf-8
from __future__ import absolute_import, division, print_function
import Tkinter as tk


def main():
    indexes = xrange(3)
    for index in indexes:
        root = tk.Tk()
        root.title('Fenster Index: {0}'.format(index))
        tk.Button(
            root,
            text='Schliessen' if index == indexes[-1] else 'Weiter',
            command=root.destroy,
        ).pack(padx=50, pady=50)
        root.mainloop()


if __name__ == '__main__':
    main()
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

danke. das muss i jetzt erstmal genauer anschauen.
naechstes() hab ich übersehen rauszunehmen.
Antworten