tkinter fenster verschiedene buttons automatisch 2

Ausgabe erfolgt nicht mehr in über die Konsole, sondern in einem eigenen Fenster
Antworten
Benutzeravatar
gerhard-schrueffer
Site Admin
Beiträge: 75
Registriert: Fr Jan 26, 2018 9:25 pm

tkinter fenster verschiedene buttons automatisch 2

Beitrag 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
Antworten