2014-07-25 24 views
0

我想這是一個非常初學者的問題。我正在使用Tkinter在Python中獲取GUI。但是下面的代碼以錯誤的順序顯示。Tkinter得到錯誤的部件訂單

# ******************************************** 
# * Frame for toolbar      * 
# ******************************************** 

# Main frame 
self.fr_toolbar = Frame(self) 
self.fr_toolbar.pack(fill=X) 
self.fr_toolbar.grid_columnconfigure(0, weight=1) 

# Align toolbars left 
self.fr_left = Frame(self.fr_toolbar, bd=1, relief = RAISED) 
self.fr_left.grid(row=0, column=0, sticky=W+E) 

# Align toolbars right 
self.fr_right = Frame(self.fr_toolbar, bd = 1, relief = RAISED) 
self.fr_right.grid(row=0, column=1, sticky=E) 


# ********************************************* 
# * Communication toolbar      * 
# ********************************************* 

# Create Frame for comm toolbar 
self.tb_comm = Frame(self.fr_left) 
self.tb_comm.grid(row=0, column=0) 

# Several buttons in here... 


# ******************************************** 
# * Scope toolbar       * 
# ******************************************** 

# Seperator line 
self.fr_split = Frame(self.fr_left, bd=1, relief=SUNKEN, width=2, height=28) 
self.fr_split.grid(row=0, column=1) 

# Create frame for scope toolbar 
self.tb_scope = Frame(self.fr_left) 
self.tb_scope.grid(row=0, column=2) 

# Several buttons in here 


# ********************************************* 
# * Exit tool bar        * 
# ********************************************* 

# Create frame for exit tool bar 
self.tb_exit = Frame(self.fr_right) 
self.tb_exit.pack() 

# Exit button here 

這個想法是讓退出工具欄在右側,其他所有工具欄在左側。到目前爲止它的工作。 fr_left中的所有工具欄框架位於左側。 fr_right中的tb_exit位於右側。

但是在fr_left裏我得到錯誤的順序來顯示我的工具欄。首先,我得到tb_comm,然後tb_scope和第三個fr_split,即使它在另外兩個工具欄之間設置。我用pack()和grid()嘗試了它。

任何人都可以解釋我做錯了什麼嗎?我想至少用pack()我會按照我定義它們的順序來獲取小部件。和grid()一樣。我用列命令他們,但是Python忽略它。

Florian

+0

也許你有第二行'self.fr_split.grid()' – furas

+0

我不確定,因爲我無法重現你在最小范例中描述的內容。我建議一次拿出一個,直到你找出它的行爲不像你期望的那樣。 – Ajean

+0

當我運行你的代碼時,我得到的順序是tb_comm,fr_split,然後是tb_scope,就像代碼要求的那樣。 –

回答

0

好的,你可以打我!我錯誤地在tb_comm中設置了tb_scope的按鈕。所以所有的工具欄都在正確的位置,但只有按鈕沒有。正如我寫的,初學者的錯......

對不起,偷了你的時間!