prob wie entwerfe ich eine GUI-Oberfläche

Fragen zu Tkinter.
Antworten
Blackfankie
User
Beiträge: 16
Registriert: Sonntag 20. Juli 2003, 00:36

hi,

Möchte gerade einen Taschenrechner entwerfen. Und bin gerade schon bei der GUI-Oberfläche gescheiter. Ihrgend wie verstehe ich das verhalten der Packer noch nicht ganz.

Code: Alles auswählen

#!/usr/bin/python

from Tkinter import *

root = Tk()
#tit= Title(root,text="Mein Taschenrechner")
#tit.pack()
eingabe=Entry(root,width=20)
eingabe.grid(row=1,column=7)
but1=Button(root,text="1")
but1.grid(row=2,column=4)
but2=Button(root,text="2")
but2.grid(row=2,column=5)
but3=Button(root,text="3")
but3.grid(row=2,column=6)
but4=Button(root,text="4")
but4.grid(row=3,column=4)
but5=Button(root,text="5")
but5.grid(row=3,column=5)
but6=Button(root,text="6")
but6.grid(row=3,column=6)
but7=Button(root,text="7")
but7.grid(row=4,column=4)
but8=Button(root,text="8")
but8.grid(row=4,column=5)
but9=Button(root,text="9")
but9.grid(row=4,column=6)
but0=Button(root,text="0")
but0.grid(row=5)

root.mainloop()
 
Es sollte eigentlich so aussehen:

Code: Alles auswählen




    ####################################
    #                   -------------  #
    #                   -------------  #
    #                   #### #### #### #
    #                   # 1# #2 # #3 # #
    #                   #### #### #### #
    #                   #### #### #### #
    #                   #4 # #5 # #6 # #
    #                   #### #### #### #
    #                   #### #### #### #
    #                   #7 # #8 # #9 # #
    #                   #### #### #### #
    #                                  #
    ####################################

Wie mache ich das am besten, mit welchen Packer usw. ????

MFG

Blackfankie
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Hallo!
Blackfankie hat geschrieben:Ihrgend wie verstehe ich das verhalten der Packer noch nicht ganz.
Beim Grid Geometry Manager gibst Du die Spalten und Zeilen an, in denen die Widgets landen sollen. Wenn Du das Edit-Widget in die 7. Spalte packst und die Buttons in die Spalten 4, 5 und 6, dann bekommst Du eine etwas verquere Anordnung.
Als erste Näherung:

Code: Alles auswählen

...
eingabe=Entry(root,width=20)
eingabe.grid(row=1,column=7,columnspan=3)
but1=Button(root,text="1")
but1.grid(row=2,column=7,sticky=NSEW)
but2=Button(root,text="2")
but2.grid(row=2,column=8,sticky=NSEW)
but3=Button(root,text="3")
but3.grid(row=2,column=9,sticky=NSEW)
...
Das sticky=NSEW sorgt dafür, dass die Zellengröße ausgeschöpft wird.
Jan
Blackfankie
User
Beiträge: 16
Registriert: Sonntag 20. Juli 2003, 00:36

hi,

jetzt kommen wir der sache schon näher ;-)

Also der Packer grid(). Arbeitet doch nach den Prinzip. Er erstellt eine Tabelle ( wie in einer Tabellenkalkullation z.B. Excel ) und dort ortnet er die Widgets an. Also kann ich ja eigentlich einen karierten Block nehmen und mir da meine GUI-Oberfläche erst ein mal Skizzieren. Und danach ein Tippen. So habe ich das jetzt zumindestens verstanden ;-)

Köntet ihr mir vieleicht noch die anderen Parameter und deren Bedeutung geben.

Und Was ist für so eine Aufgabe der Beste Geometry Manager???

So etwas dürfte doch mit pack() garnicht gehen ???

MFG

Blackfankie
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Hallo!
Blackfankie hat geschrieben:Also der Packer grid(). Arbeitet doch nach den Prinzip. Er erstellt eine Tabelle ( wie in einer Tabellenkalkullation z.B. Excel ) und dort ortnet er die Widgets an. Also kann ich ja eigentlich einen karierten Block nehmen und mir da meine GUI-Oberfläche erst ein mal Skizzieren. Und danach ein Tippen. So habe ich das jetzt zumindestens verstanden ;-)
Ja, das ist soweit richtig.
Blackfankie hat geschrieben:Köntet ihr mir vieleicht noch die anderen Parameter und deren Bedeutung geben.
Guck mal unter
http://effbot.org/zone/tkinter-geometry.htm
http://effbot.org/zone/tkinter-grid.htm
http://effbot.org/zone/tkinter-pack.htm.
Da findest Du eigentlich alle Infos.
Blackfankie hat geschrieben:Und Was ist für so eine Aufgabe der Beste Geometry Manager???

So etwas dürfte doch mit pack() garnicht gehen ???
Nennenswert sind ja nur der Grid- und der Pack-Manager. Den Placer wird man wohl kaum je benutzen. Der Taschenrechner ließe sich auch mit dem Pack-Manager erstellen, und zwar über ineinandergepackte Frames. Aber der Grid-Manager ist wohl naheliegender.

Jan
Antworten