2012-07-13 28 views
1

我已經開始學習TK(來自Python)。我覺得我可以使用網格佈局管理器來顯示小部件(這聽起來很容易),但現在我覺得這是一個錯誤的決定。例如,我只是在計劃一個框架,它內部有多個框架(Wizard Like form)。所以在表單底部,我想要兩個按鈕(Next,Previous)。現在我想把它們放在底部框架的右邊,但是看起來很難做出這樣的安排。如何使用網格佈局管理器在框架中的所需位置安排兩個按鈕?

我試圖爲這兩個按鈕創建單獨的內部框架,但不能讓我的結果。有沒有人告訴我,如果我能與網格佈局管理器

from Tkinter import * 
tk = Tk() 
main_frame = Frame(tk) 
main_frame.grid(row=0) 
frame3 = Frame(main_frame, bg="orange", width=1000, height=100) 
frame3.grid(row=1,column=0,columnspan=2) 
frame3a = Frame(frame3) 
frame3b = Frame(frame3) 
frame3a.grid(row =0 ,column = 0) 
frame3b.grid(row = 0, column = 1) 
btn1 = Button(frame3a, text='Next', width = 10, command=next) 
btn1.grid(padx=200, pady =40) 
btn2 = Button(frame3b, text='Previous', width = 10, command=prev) 
btn2.grid(padx=00, pady =40) 
frame3.grid_propagate(False) 
tk.mainloop() 

在此先感謝

回答

3

是可以達到這樣的結果。從網格中使用更多的行/列屬性以及粘性屬性。

閱讀:http://effbot.org/tkinterbook/grid.htm

我假設你希望你的窗口看起來像這樣(原油ASCII進入)

+------------+------------+ 
|   |   | 
| FRAME  | FRAME | 
|------------+------------| 
|  FRAME |PREV|NEXT| 
+-------------------------+ 

要做到這一點,我會用pack而非grid。我做一個底部框架,並使其成爲按鈕只是高度,然後收拾他們都是對的:如果你想堅持其他垃圾在底部SACE,您可以使用網格管理器來推框架的方式進行。 Pack僅在帶有按鈕的框架中處於活動狀態,但您可以使用gridmanager移動該按鈕框。

from Tkinter import * 
tk = Tk() 
main_frame = Frame(tk) 
main_frame.grid(row=0) 
frame1 = Frame(main_frame, bg="orange", width=500, height=100) 
frame2 = Frame(main_frame, bg="blue", width=500, height=100) 
frame3 = Frame(main_frame, bg="green", width=1000, height=50) 
frame1.grid(row=1,column=1) 
frame2.grid(row=1,column=2) 
frame3.grid(row=2,column=1,columnspan=2) 
frame3.pack_propagate(0) # Keeps bottom frame from resizing 
btn1 = Button(frame3, text='Next', width = 10) 
btn1.pack(side='right') # sticks on side 
btn2 = Button(frame3, text='Previous', width = 10) 
btn2.pack(side='right') # sticks on side 
tk.mainloop() 
+0

謝謝,我有作爲refernce僅使用。你能幫我安排在給定的例子。 – sarbjit 2012-07-13 14:38:53

+0

類是,這兩個按鈕在同一行像軟件安裝嚮導.... – sarbjit 2012-07-13 14:46:51

+0

@sarbjit做這項工作? – Squid1361 2012-07-13 16:52:55

相關問題