2014-07-25 6 views
0

이것은 매우 초보자 용 질문입니다. 파이썬에서 GUI를 사용하기 위해 Tkinter를 사용하고 있습니다. 그러나 프레임 아래에있는 코드는 잘못된 순서로 표시됩니다.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()와 동일합니다. 나는 그것들을 칼럼으로 주문했지만, 파이썬은 그것을 무시하고있다.

플로리안

+0

아마도'self.fr_split.grid()'와 함께 두 번째 줄이있을 수도 있습니다. – furas

+0

최소한의 예제에서 설명하는 것을 재현 할 수 없기 때문에 확실하지 않습니다. 나는 네가 기대하는 것처럼 행동하지 않는 곳을 정확하게 파악할 때까지 한 번에 하나씩 꺼내는 것이 좋습니다. – Ajean

+0

코드를 실행하면 코드가 요청한대로 tb_comm, fr_split, tb_scope 순으로 나타납니다. –

답변

0

좋아, 나를 칠 수 있습니다! 실수로 tb_comm에서 tb_scope에 대한 버튼을 설정했습니다. 모든 도구 모음은 올바른 위치에 있었지만 버튼 만이 아닙니다. 내가 쓴 것처럼, 초보자 잘못 ...

죄송 시간을 훔치 러!

관련 문제