Anordnen der Elemente pack()

Fragen zu Tkinter.
Antworten
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Sonntag 24. Februar 2008, 11:55

servus

einfach das ganze mittels Frame Packen und dann normal mit Pack()
von oben nach unten

Code: Alles auswählen

############################
## MAIN - Hauptprogramm
############################
root = Tk()
root.geometry('800x600')
        
root.title('Boersendaten-Einlesen-Analyse Tool Sammel Lothar 2008')

label=Label(root,text='1.Datum Eingabe ', font=('Verdana',14,'bold'))
label.pack()
label2=Label(root,
                  text='   Bitte geben Sie im Format TT,MM,JJJJ also ** 01,00,2008 ** für 1.Jan08 ein Jan=00 Feb=01..Dez=11   ' ,
                  font=('Arial',10,'bold'))
label2.pack()

frame_datum=Frame(root)
frame_datum.pack()
text=Label(frame_datum,text='Datum_Von: ', font=('Arial',10,'bold'))
text.pack(side=LEFT)
e1=Entry(frame_datum,width=11,font="courier")
e1.insert('0',datum_von)
e1.pack(side=LEFT)
text=Label(frame_datum,text='  Datum_BIS: ', font=('Arial',10,'bold'))
text.pack(side=LEFT)
e2=Entry(frame_datum,width=11,font="courier")
e2.insert('0',datum_bis)
e2.pack(side=LEFT)
text=Label(frame_datum,text=' ', font=('Arial',10,'bold'))
text.pack(side=LEFT)
but_dat=Button(frame_datum,text='Bestätigen_Datum',
                           command=lambda: Datum_set(str(e1.get()), str(e2.get())))
but_dat.pack(side=LEFT)
separator = Frame(height=2, bd=1, relief=SUNKEN)
separator.pack(fill=X, padx=5, pady=5)
#Frame Pfad        
label3=Label(root,text='2.Datei PFAD', font=('Verdana',14,'bold'))
label3.pack()
frame_pfad=Frame(root)
frame_pfad.pack()
e3=Entry(frame_pfad,width=25,font="courier")
e3.insert('0','C:\\boerse\\')
e3.pack(side=LEFT)
text=Label(frame_pfad,text=' ', font=('Arial',10,'bold'))
text.pack(side=LEFT)
but_pfad=Button(frame_pfad,text='Bestätigen_Pfad',
                           command=lambda: Pfad_set(str(e3.get())))
but_pfad.pack(side=LEFT)
separator = Frame(height=2, bd=1, relief=SUNKEN)
separator.pack(fill=X, padx=5, pady=5)
#Frame Buttons
label3=Label(root,text='3.Index_Listen_Einlesen', font=('Verdana',14,'bold'))
label3.pack()
frame_index_listen=Frame(root)
frame_index_listen.pack()
tecdax = Button(frame_index_listen,text='TecDAX_Einlesen', command = OnTecdaxButton)
tecdax.pack(side=LEFT,expand=NO)
mdax = Button(frame_index_listen,text='MDAX_Einlesen', command = OnMdaxButton)
mdax.pack(side=LEFT,expand=NO)
cdax = Button(frame_index_listen,text='CDAX_Einlesen', command = OnCdaxButton)
cdax.pack(side=LEFT,expand=NO)
sdax = Button(frame_index_listen,text='SDAX_Einlesen', command = OnSdaxButton)
sdax.pack(side=LEFT,expand=NO)
dax30 = Button(frame_index_listen,text='DAX30_Einlesen', command = OnDaxButton)
dax30.pack(side=LEFT,expand=NO)
alles = Button(frame_index_listen,text='ALLES_Einlesen', command = OnAllesButton)
alles.pack(side=LEFT,expand=NO)
separator = Frame(height=2, bd=1, relief=SUNKEN)
separator.pack(fill=X, padx=5, pady=5)
#Frame Auswerten
label4=Label(root,text='4.Auswertung', font=('Verdana',14,'bold'))
label4.pack()
frame_auswertung=Frame(root)
frame_auswertung.pack()
auswert = Button(frame_auswertung,text='Auswertung', command = OnAuswertButton)
auswert.pack(side=LEFT,expand=NO)
separator = Frame(height=2, bd=1, relief=SUNKEN)
separator.pack(fill=X, padx=5, pady=5)
#FRAME MENUE
frame_menue=Frame(root)
frame_menue.pack()
info = Button(frame_menue,text='Info', command = info)
info.pack(side=LEFT,expand=NO)
ende = Button(frame_menue,text='Beenden', command = ende)
ende.pack(side=LEFT,expand=NO)
#TEXTFENSTER
text=Label(root,text="Hier gibt es die Laufzeit Statusmeldungen\n"
           ,font=('Arial',10,'bold'))
text.pack(fill=X)
             
textfenster = ScrolledText(root,background='white',font=('Verdana',10,'bold'))
textfenster.pack(expand=NO)
Ausgabe ('ALLE STANDARDS wurden wie Folgt Gesetzt')
Ausgabe('\n Siehe die Werte der Eingabe Felder')
Ausgabe("\n Standard gehen die Dateien nach \n "
                   "C:\\boerse\\ \n"
                   "in die jeweiligen Unterverzeichnisse \n"
                   "tecdax , mdax , cdax ,sdax ,symbole \n"
                   "dateien werden eingelesen als csv \n")

textfenster.pack(expand=NO)

## Start Fenster
root.mainloop()


Zuletzt geändert von sea-live am Mittwoch 5. März 2008, 09:30, insgesamt 2-mal geändert.
BlackJack

Sonntag 24. Februar 2008, 13:42

`pack()` sollte man immer nur in eine Richtung, horizontal oder vertikal, innerhalb eines Container-Widgets verwenden. Wenn Du von oben nach unten "packen" willst, dazwischen aber ein paar Buttons die nebeneinander stehen, dann musst Du die in einen Frame packen und den dann in den anderen Container. Also als ASCII-Art:

Code: Alles auswählen

+Tk----------------+
|+Entry-----------+|
||Text 1          ||
|+----------------+|
|+Entry-----------+|
||Text 2          ||
|+----------------+|
|+Frame-----------+|
||+--+ +---------+||
|||OK| |Abbrechen|||
||+--+ +---------+||
|+----------------+|
+------------------+
Im Tk-Objekt stecken drei Widgets, zwei `Entry`\s und ein `Frame`, und in dem `Frame` stecken zwei `Button`\s.
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

Sonntag 24. Februar 2008, 14:06

... oder grid -Geometriemanager verwenden :)
Also hatte auch Probleme mit dem Anordnen mit pack, wollte alles nicht wie ich. Hab dann grid genommen, ist zwar mehr Quelltext, aber kann halt in Spalten und Zeilen das ganz genau selber bestimmen, was wo sein soll :)
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Sonntag 24. Februar 2008, 16:16

Danke dann werde ich mich mal dahinterklemmen und das ganze ausbaldovern wie das am besten Aussieht
Antworten