2017-01-10 5 views
0

Ich habe hier ein Programm, das zwei Tasten enthält. Ich versuche, die Position dieser Tasten so zu ändern, dass zwischen ihnen ein Zwischenraum ist, weil sie sich momentan direkt unter einander befinden. Was sollte ich tun, um ihre Position zu ändern?Wie positioniere ich Tasten in tkinter?

def menu(): 
    import tkinter 
    window=tkinter.Tk() 
    window.title('Lightning Parties') 
    window.configure(background='turquoise') 
    lbl=tkinter.Label(window, text='Welcome to Lightning Parties!', fg='purple', bg='turquoise', font=('comicsans', 14)) 
    lbl.pack() 

    #here are the buttons 
    lbl=tkinter.Button(window, text='Returning customer options', fg='white', bg='purple', font=('comicsans', 12),command=combine_funcs(window.destroy, customer_login)) 
    lbl.pack() 

    lbl=tkinter.Button(window, text='Register as a customer', fg='white', bg='purple', font=('comicsans', 12),command=combine_funcs(window.destroy, customer_details)) 
    lbl.pack() 

jede Hilfe würde gerne geschätzt werden, danke!

+0

Der Befehl pack akzeptiert eine Option zum Steuern des Auffüllens. Hast du das versucht? –

Antwort

1

Eigentlich habe ich im vorigen Semester auch eine Tkinter-Anwendung gemacht, die uns das Projekt vom Lehrer gegeben hat. Also gehe ich zur Tutorial-Website von Python und finde drei Methoden, um die Widgets auf dem Ausgabebildschirm zu platzieren. Die drei Methoden sind

1. Pack() 
2. Grid() 
3. Place() #the best method over Pack() and Grid() 

Place() - Methode nehmen Sie die Koordinaten in Form von X und Y. Siehe diesen Link für mehr Klarheit https://www.tutorialspoint.com/python/python_gui_programming.htm

https://www.tutorialspoint.com/python/tk_place.htm

Siehe unten auf der Seite des gegebene link.The Place() -Methode mit den richtigen Argumenten definiert. Ich bevorzuge die Place() -Methode gegenüber Pack() und Grid(), weil es wie CSS funktioniert, wie wir es in html verwenden, weil es den Wert von (width, height) annimmt und Ihr Widget nach Belieben platziert.

Wenn Sie Ihre Antwort finden, wird ein Daumen hoch geschätzt werden.

0

Während ich nicht ganz sicher bin, dass tkinter einen expliziten Weg hat, um dieses Problem zu lösen (oder zumindest einfach zu lösen), ist mein Vorschlag, die Methode grid() zu verwenden.
Es erfordert ein bisschen mehr Code als pack() (siehe den Artikel von effbot für weitere Informationen), ist aber viel vielseitiger.
Nochmals, ich denke nicht, dass es dieses Problem direkt lösen wird, aber es ist vielseitiger, und wenn Sie die GUI richtig strukturieren und das Schlüsselwort sticky richtig verwenden, ist ein guter Abstand oft gegeben.

0

Um den vertikalen Abstand zwischen den Schaltflächen zu erhöhen, verwenden Sie pady Argument in der pack Methode: lbl.pack(pady=10).

Für den horizontalen Abstand gibt es ein padx Argument. Dies funktioniert auch mit der grid Methode.

+0

funktioniert perfekt, danke !! – brenda

-1

Ich würde andere Antworten kommentieren, aber nicht die rep.
Die Antworten, die die pad Methoden vorschlagen, sind möglicherweise nicht ganz, was Sie wollen. pad erzeugt zusätzlichen Abstand zwischen der Umrandung der Schaltfläche und ihrem Inhalt. Wenn Sie sie verwenden, wird die Schaltfläche also größer.
Ich könnte falsch liegen, aber ich denke nicht, dass dies den Abstand zwischen den Widgets selbst beeinflussen wird.

+0

Probieren Sie das Codebeispiel in der Frage mit 'pack (pady = 10)' anstelle von 'pack()' und Sie werden sehen, dass es den vertikalen Abstand zwischen den Schaltflächen erhöht. –

+0

Padding macht den Button selbst nicht größer. –

+0

Ja, danke, ich war verwirrt zwischen dem Pad-Schlüsselwort im Widget und im Grid() – EriktheRed

Verwandte Themen