2017-10-17 44 views
-1

這是我的代碼,我正在嘗試做的是在框架中間設置URL標籤並在其旁邊輸入文本,並在URL和條目文本字段下添加3個按鈕。使用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

代碼中沒有'Entry'小部件或'Button'小部件。你也沒有在你的**問題**中提出過問題。我們能做些什麼來幫助你呢?你需要更清楚。 –

+0

我已經添加了按鈕,但現在我希望我的框架設置在tkinter窗口的中間,並且還從菜單欄和工具欄留下了一定的空間,如果添加了@EthanField,我還有編輯我以前的代碼到新的 –

回答

0

如果您堅持使用.grid()方法,那麼你可以添加以下代碼:

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

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

這將意味着網格的列的和行的將擁有的可用空間窗戶均勻分配給他們。將此與.grid()sticky屬性結合使用可以實現您正在查找的結果。


但是,從主觀上講可能更容易讓你切換到.pack()方法,該方法(至少在我自己的意見),允許更容易配置和Tkinter的GUI的管理。

你可以做類似下面:

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() 

以上利用了很多不同的新想法已經提出和回答在這裏堆棧溢出過很多次,所以我要去鏈接你到this fantastic answer from Bryan Oakley

+0

謝謝你這實際上是爲了我實際上試圖做的事情@Ethan Field –