ich möchte ein kleinen Programm schreiben, indem man neuen Widgeds per Tastendruck hinzufügen kann.
In diesem Testprogramm geht es erst einmal nur um Buttons. Hier ist der Code:
Code: Alles auswählen
import tkinter as tk
class Programm(tk.Tk):
def __init__(self):
super().__init__()
self.neuerButton = tk.Button(self, text="Neuer Button",command=self.nButton)
self.neuerButton.grid(row=1,column=0)
self.changeBG = tk.Button(self, text="bg Änderung",command=self.bgChange)
self.changeBG.grid(row=2,column=0)
self.nrow = 3
self.buttonList= []
def nButton(self):
self.Var = "Button" + str(self.nrow)
print(self.Var) # erste Ausgabe
self.buttonList.append(self.Var)
self.Var = tk.Button(self, text=self.Var)
self.Var.grid(row=self.nrow,column=0)
self.nrow += 1
print(self.Var) # zweite Ausgabe
print(self.buttonList)
def bgChange(self):
self.Button4.configure(bg='blue')
def main():
root = Programm()
root.mainloop()
if __name__ == "__main__":
main()
Wenn ein neuer Button hinzugefügt wird, wird der Name in der Liste "buttonList" gespeichert. Jeder Button Name setzt sich aus Button[Zahl] zusammen und wird im der Variable "Var" gespeichert.
Dabei ist mir eine Änderung in der Variable "Var" aufgefallen, in der ersten Ausgabe ist sie 'Button3', in der zweiten '.!button3'
Die Änderung des bg klappt jedoch nicht mit 'Button4', 'button4' oder '!button4'.
Wie kann ich auf den Button zugreifen ?
Gruß Kai