2017-10-17 6 views
-1

Hier ist mein Code und was genau ich versuche zu tun ist die URL-Bezeichnung in der Mitte des Rahmens und der Eintragstext daneben, und das Hinzufügen von 3 Tasten unter dem URL und Eintrag Textfeld .Setzen innerer Module in Rahmen mit tkinter

import tkinter as tk 
    from tkinter import * 
    root = tk.Tk() 


root.geometry("520x400") 

frame1 = tk.LabelFrame(root, text="my_first_window", width=400, height=200, bd=5) 
Label(root, text="URL:").grid(row=0, column=1 ,sticky=W) 

e1 = Entry(root) 
e1.grid(row=0, column=2) 
frame1.grid(row=0, column=0, columnspan=7, padx=8) 

Button(root, text='BACK', command=lambda:print('BACK')).grid(row=8, column=1, sticky=W, pady=4) 
Button(root, text='NEXT', command=lambda:print('NEXT')).grid(row=8, column=2, sticky=W, pady=4) 
Button(root, text='CANCLE', command=lambda:print('CANCLE')).grid(row=8, column=3, sticky=W, pady=4) 


mainloop() 
+0

In Ihrem Code gibt es keine "Eingabe" -Widgets oder "Button" -Widgets. Sie haben auch keine Frage in Ihrer ** Frage ** gestellt. Was können wir tun, um dir hier zu helfen? Du musst klarer sein. –

+0

Ich habe die Tasten hinzugefügt, aber jetzt möchte ich meinen Rahmen in der Mitte des Tkinter-Fensters eingestellt haben und auch etwas Platz in der Menüleiste und der Werkzeugleiste lassen, wenn @EthanField hinzugefügt wird. Ich habe meinen vorherigen Code zu einem neuen bearbeiten. –

Antwort

0

Wenn Sie darauf bestehen, über die Verwendung der .grid() Methode, dann können Sie die folgenden, um Ihren Code hinzufügen:

for column in range(10): 
    Grid.columnconfigure(root, column, weight=1) 

for row in range(10): 
    Grid.rowconfigure(root, row, weight=1) 

Diese bedeuten, dass die Spalte und Zeile der des Gitters wird der Raum in der zur Verfügung haben Fenster ihnen gleichmäßig gegeben. Wenn Sie dies in Verbindung mit dem sticky Attribut von .grid() verwenden, können Sie das gewünschte Ergebnis erzielen.


jedoch subjektiv gesehen ist es vielleicht einfacher für Sie zur .pack() Methode zu wechseln, die (zumindest in meiner Meinung nach) für viele einfache Konfiguration und Verwaltung von tkinter GUIs ermöglicht.

Man könnte so etwas wie die unten tun:

from tkinter import * 

root = Tk() 

root.geometry("520x400") 

frame1 = LabelFrame(root, text="my_first_window", width=400, height=200, bd=5) 
Label(frame1, text="URL:").pack(side="left", fill="x") 

e1 = Entry(frame1) 
e1.pack(side="left", fill="x", expand=True) 
frame1.pack(fill="both", expand=True) 

Button(root, text='BACK', command=lambda:print('BACK')).pack(fill="both", expand=True, side="left", padx=5, pady=5) 
Button(root, text='NEXT', command=lambda:print('NEXT')).pack(fill="both", expand=True, side="left", padx=5, pady=5) 
Button(root, text='CANCLE', command=lambda:print('CANCLE')).pack(fill="both", expand=True, side="left", padx=5, pady=5) 

root.mainloop() 

Die obige Verwendung von vielen verschiedenen neuen Ideen macht, die gestellt wurden, und beantwortet zu oft hier auf Stack-Überlauf, so werde ich verbinden Sie zu this fantastic answer from Bryan Oakley.

+0

danke So sehr hat es wirklich funktioniert für das, was ich eigentlich versuchte @Ethan Field zu machen –

Verwandte Themen