grid
hallo, ich möchte mehrere buttons in einen feld darstellen wobei wenn man einen button klickt immer das selbe passiert (mit diesem speziellen Button). Ich habe mir überlegt, dass ich da eine button-Klasse erstellen könnte und dann eine Liste mit den ganzen Buttons drin. Jetzt frag ich mich, wie ich das am besten darstellen könnte. Ist grid dazu gut zu benutzen und wenn ja, kann mir jemand ein beispiel zeigen, wie grid zu benutzen ist?
ok, das mit grid hab ich hinbekommen. leider kann man dabei keine spalten leer lassen Gibt es eine Möglichkeit, genau zu bestimmen, wo ein Button in einem Frame sein soll. Außerdem wird mein Frame nicht mit den Größen aufgebaut, die ich ihm mitgebe ??? Weis jemand rat?
-
- User
- Beiträge: 38
- Registriert: Freitag 8. April 2005, 16:33
- Wohnort: Krefeld
zeig am besten mal den quelltext sonst wissen wir ja nicht was du da programmiert hast
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Sowas?Arminius hat geschrieben:Außerdem wird mein Frame nicht mit den Größen aufgebaut, die ich ihm mitgebe ??? Weis jemand rat?
Code: Alles auswählen
#!/usr/bin/env python
import Tkinter as tk
root = tk.Tk()
root.wm_geometry('450x550+20+20')
root.update()
root.mainloop()
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hi Arminius,
mit deiner Frage Buttons in einem Grid anzuordnen hast du mir eine gute Idee gegeben, um bei meinem Projekt einige Zeilen zu sparen.
- Ich hoffe du bist mir nicht böse, wenn ich mich mal in deinen Thread einklinke.
Wäre schön, wenn du deine Lösung posten könntest.
Ich bekomme noch keine Funktionen an die Buttons gebunden. Also für jeden Knopf eine eigene Funktion.
Bisher habe ich folgendes zusammengestellt:
Was ich will ist, das command = knopf eben auf die jeweilige Prozedur zugegriffen wird.
cu Sebastian
mit deiner Frage Buttons in einem Grid anzuordnen hast du mir eine gute Idee gegeben, um bei meinem Projekt einige Zeilen zu sparen.
- Ich hoffe du bist mir nicht böse, wenn ich mich mal in deinen Thread einklinke.
Wäre schön, wenn du deine Lösung posten könntest.
Ich bekomme noch keine Funktionen an die Buttons gebunden. Also für jeden Knopf eine eigene Funktion.
Bisher habe ich folgendes zusammengestellt:
Code: Alles auswählen
#!/usr/bin/python
# -*- encoding: latin-1 -*-
import Tkinter as tk
def eins():
print "eins"
def zwei():
print "zwei"
def drei():
print "drei"
alle_knoepfe = ["eins", "zwei", "drei"]
master = tk.Tk()
for knopf in alle_knoepfe:
tk.Button(master,
text = knopf,
command = knopf).grid(
row = 0,
column = alle_knoepfe.index(knopf) )
master.mainloop()
cu Sebastian
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
@Arminius:
Frames collabieren, das heisst sie sind immer so gross wie der Platz, den die enthaltenen Widgets einnehmen.
Wenn Du mit grid Spalten oder Zeilen freilassen willst, setz einfach ein Label ohne Text hinein
@Mr_Snede:
Wie wärs damit:
Gruß, mawe
@Arminius:
Frames collabieren, das heisst sie sind immer so gross wie der Platz, den die enthaltenen Widgets einnehmen.
Wenn Du mit grid Spalten oder Zeilen freilassen willst, setz einfach ein Label ohne Text hinein
@Mr_Snede:
Wie wärs damit:
Code: Alles auswählen
from Tkinter import *
def eins():
print "eins"
def zwei():
print "zwei"
knoepfe = [["eins",eins],["zwei",zwei]]
root = Tk()
for i in range(len(knoepfe)):
Button(text=knoepfe[i][0], command=knoepfe[i][1]).grid(row=i,column=0)
root.mainloop()