Tkinter Buttons konfigurieren

Fragen zu Tkinter.
Antworten
Wolflkoder
User
Beiträge: 28
Registriert: Sonntag 7. Dezember 2014, 15:57

Hallo,

ich würde gerne mein Progammcode optimieren und habe hier ein kleines Problem mit einem String

Code: Alles auswählen


for i in range(10):
  button=("button"+str(i))
  
        "Hier soll der Platzhalter hin"  .button.pack(side=LEFT)
        "Hier soll der Platzhalter hin"  .config(font=('Arial', 8))
        "Hier soll der Platzhalter hin"  .config(background="white", foreground="black")
        "Hier soll der Platzhalter hin"  .pack()
ich möchte dass hier die Konfiguration auf alle 9 Buttons angewand wird.

also der Platzhalter soll automatisch

button1
button2
button3 ...... erstellen.

kann ich das so umsetzen ? wenn ja, wie ist die richtige schreibweiß um den string einzufügen?


MFG


Wolflkoder
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Im Prinzip hast du es fast:

Code: Alles auswählen

for i in range(10):
    button = tk.Button(root, text="Button {}".format(i))
    button.pack(side=LEFT)
    button.config ...
Das Leben ist wie ein Tennisball.
Wolflkoder
User
Beiträge: 28
Registriert: Sonntag 7. Dezember 2014, 15:57

Ich denke das ist falsch verstanden worden.

Ich möchte nicht den Button Text selber, sonder vorne einfügen.

Code: Alles auswählen


button1 = tkinter.Button(main,text="test",command=test,width=15)

for i in range(7):
  button(i).pack(side=LEFT)
  button(i).config(font=('comic sans ms', 7, 'bold'))
  button(i).pack()
  

sollte eingentlich das hier von selber machen

#button1.pack(side=LEFT)
#button1.config(font=('comic sans ms', 7, 'bold'))
#button1.pack()
                      

#button2.pack(side=LEFT)
#button2.config(font=('comic sans ms', 7, 'bold')) 
#button2.pack()
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ich habe dich schon richtig verstanden. Wenn du die Buttons noch speichern möchtest, dann packe diese einfch in eine Liste.
Das Leben ist wie ein Tennisball.
Wolflkoder
User
Beiträge: 28
Registriert: Sonntag 7. Dezember 2014, 15:57

jetzt habi ichs verstanden!

Tut doch was es soll :-)

allerdings weiß ich noch nicht wie ich die obigen Button Namen " text=button " individuell benennen kann innerhalb der Schleife.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

So ganz schlau werde ich aus deinem letzten Satz nicht. Willst du die Beschriftung des Buttons ändern oder den Namen des Objekts. Für den ersten Fall ist meinem Code in Beispiel. Statt den Namen zu generieren, kannst du natürlich auch eine Liste mit Beschriftungen übergeben:

Code: Alles auswählen

for text in ("spam", "ham", "eggs"):
    button = tk.Button(rot, text=text)
    ...
Wenn es um den (Variablen-)Namen des Objekts geht, dann willst du gar keine Namen generieren. Das ist sehr schlechter Stil und führt nur zu Problemen. Wenn die Buttons alle Gleichwertig sind, dann ist eine Liste die richtige Wahl. Damit bekommst du auch einen Index. Statt "button0", "button1", ... eben "button[0]", "button[1]", etc.
Das Leben ist wie ein Tennisball.
Wolflkoder
User
Beiträge: 28
Registriert: Sonntag 7. Dezember 2014, 15:57

Klasse!

Genau das hab ich gesucht...... it works!


Dankeschön!!!!!!
Antworten