Seite 1 von 1

tkinter fenster verschiedene buttons automatisch 2

Verfasst: Mi Mai 23, 2018 2:14 pm
von gerhard-schrueffer

Code: Alles auswählen

 -*- coding: utf-8 -*-
from tkinter import *
import numpy as np
import matplotlib.pyplot as plt

show_plot = False
buttonabstand = 20
button = [0, 'Beispiel eins', 'Beispiel zwei', 'Beispiel drei', 
             'Beispiel vier', 'Beispiel fünf', 'Beispiel sechs']
farben = [0, '#FAFAD2', '#FFC0CB', '#66CDAA', '#87CEFA', '#E0EEE0', '#EECBAD']
tkFenster = Tk() 
tkFenster.title('Haupt Fenster')
tkFenster.geometry('400x400')

def buttonhauptClick(titel):        
    def buttonOkClick():  
        tkFensterhaupt.quit()
        tkFensterhaupt.destroy()
        tkFenster.mainloop()        
    tkFensterhaupt = Toplevel()   
    tkFensterhaupt.title(titel)
    tkFensterhaupt.geometry('800x600')        
    buttonOk = Button(master=tkFensterhaupt, text='Quit', command=buttonOkClick) 
    buttonOk.place(x=740, y=570, width=30, height=20)
        
def buttonxxClick():
    tkFenster.quit()
    tkFenster.destroy()
    
def getButtonCallback(t):
    return lambda: buttonhauptClick(t)
         
for buttonplatz in range(1,7,1):         
    buttonabstand=buttonabstand+40
    buttonplatz = Button(master=tkFenster, bg=farben[buttonplatz], text=button[buttonplatz],
                         command=getButtonCallback(button[buttonplatz]))
    buttonplatz.place(x=54, y=buttonabstand, width=100, height=27)
    buttonxx = Button(master=tkFenster, text='Quit', command=buttonxxClick)                  
    buttonxx.place(x=540, y=360, width=30, height=20)
   
tkFenster.mainloop()    # Aktivierung des Fensters     



In diesem Beispiel wird ebenfalls ein tkinter-Fenster mit mehreren Buttons automatisch erzeugt.
Diesmal jedoch in eine For-Schleife, die den Namen und die Farbe der Buttons setzt (Aus Listen Argumenten).
Das gerufene Fenster erhält jetzt über die lambda Funktion den Namen des Buttons zur Laufzeit und zeigt diesen als Titel des Unterfensters an.
Am Beispiel 4.

Hauptfenster
Bild

Unterfenster
Bild