In Letztes Mal habe ich den grundlegenden Teil von Tkinter in Python geschrieben. Dieses Mal werde ich Ihnen zeigen, wie Sie dynamisch eine Tkinter Check-Schaltfläche erstellen.
Ein Flussdiagramm einer einfachen Idee.
Python
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
import tkMessageBox
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#
#Globale Variablen
#
hLabel = [] #Speichert den Griff des Etiketts
hCheck = [] #Speichert den Griff des Kontrollkästchens
CheckVal = [] #Speichert, ob das Kontrollkästchen aktiviert ist
#
#Ruft den Kontrollstatus des Kontrollkästchens ab
#
def check(event):
for n in range(len(CheckVal)):
if CheckVal[n].get() == True:
label = Tkinter.Label(text=u"Überprüft")
label.place(x=100, y=20*n + 50)
else:
label = Tkinter.Label(text=u"Nicht geprüft")
label.place(x=100, y=20*n + 50)
#Etikettengriff hinzugefügt
hLabel.append(label)
#
#Erstellen Sie dynamisch Kontrollkästchen
#
def make(ebent):
#Holen Sie sich die Anzahl der zu erstellenden Kontrollkästchen (Einstiegswert)
num = Entry1.get()
#Löschen Sie vorhandene Kontrollkästchen und Beschriftungen
for n in range(len(hCheck)):
hCheck[n].destroy()
hLabel[n].destroy()
#Leeren Sie das Array
del CheckVal[:]
del hCheck[:]
del hLabel[:]
#Schleife für den in Eintrag1 eingegebenen Wert
for n in range(int(num)):
#Erstellen eines BooleanVar
bl = Tkinter.BooleanVar()
#Bestimmen Sie den Wert des Kontrollkästchens
bl.set(False)
#Kontrollkästchen erstellen
b = Tkinter.Checkbutton(text = "Artikel" + str(n+1), variable = bl)
b.place(x=5, y=20*n + 50)
#Fügen Sie der Liste den Wert des Kontrollkästchens hinzu
CheckVal.append(bl)
#Kontrollkästchen-Handle zur Liste hinzufügen
hCheck.append(b)
button1 = Tkinter.Button(root, text=u'Check-Schaltfläche erstellen',width=20)
button1.bind("<Button-1>",make)
button1.place(x=90, y=5)
button2 = Tkinter.Button(root, text=u'Holen Sie sich Scheck',width=15)
button2.bind("<Button-1>",check)
button2.place(x=265, y=5)
Entry1 = Tkinter.Entry(root, width=10)
Entry1.place(x=5, y=5)
root.mainloop()
Recommended Posts