2017-10-23 3 views
0

목록 상자를 창 가운데에 놓으려고하고 목록 상자가 중간의 화면 맨 위에 머물러 있습니다.Tkinter 목록 상자 위치 지정

#centre listbox 
lb = Listbox(my_window) 

lb.insert(1, 'Fri, 13 Oct 2017') 
lb.insert(2, 'Sat, 14 Oct 2017') 
lb.insert(3, 'Sun, 15 Oct 2017') 
lb.insert(4, 'Mon, 16 Oct 2017') 
lb.insert(5, 'Tues, 17 Oct 2017') 
lb.insert(6, 'Wed, 18 Oct 2017') 
lb.insert(7, 'Thurs, 19 Oct 2017') 
lb.insert(8, 'Latest') 

lb.place(x=240, y=100) 
lb.pack() 

이 내가 넣었습니다와 lb.place (...)는 이전에 근무 값과 갑자기 내가 그것을 이동할 수없는 이유에 혼란 스러워요, 더 이상없는 것입니다.

+0

윈도우 중간에 위젯을 배치하는 데는 6 가지 방법이 있습니다. 올바른 선택은 창에있는 다른 위젯의 종류, 위젯의 확장 및 축소 여부 등 여러 요소에 따라 달라집니다. 더 구체적으로 표현할 수 있습니까? 아니면 말 그대로 더 큰 창 중간에 단일 목록 상자 만 표시 할 수 있습니까? –

답변

0

.pack().place() 두 개의 지오메트리 관리자를 사용 중입니다. 이 아닌 경우을 수행해야합니다. .place()은 일련의 좌표를 가져와 해당 좌표의 왼쪽 위 모서리에 위젯을 배치합니다. .pack()은 상단과 가운데에 정렬 된 창을 차례로 쌓아 올린 창에 위젯을 배치합니다.

.place()은 다음과 같은 것을 할 것입니다 : 간단하게 원하는 위젯을 배치

from tkinter import * 

root = Tk() 

button = Button(root, text="Placeholder") 

button.place(x=0, y=0) 

root.mainloop() 

합니다.

.pack() 그러나 화면에서 개체를 이동하는 데 사용할 수있는 많은 "지능형"특성이 있습니다. 기본적 .pack()으로

은과 같이 창에 위젯을 배치합니다 :

from tkinter import * 

root = Tk() 

button = Button(root, text="Placeholder") 

button.pack() 

root.mainloop() 

그러나 이러한 특성의 일부를 사용하여 우리는 모든 종류의 방법을 조작 할 수 있습니다 :

from tkinter import * 

root = Tk() 

button = Button(root, text="Placeholder") 

button.pack(fill="both", expand=True) 

root.mainloop() 

으로는 지적했다 아래 코멘트에서 Bryan에 의해 외장 x 및 y 좌표를 사용하면 .place()과 같이 사용할 수 있습니다.

from tkinter import * 

my_window = Tk() 

lb = Listbox(my_window) 

lb.insert(1, 'Fri, 13 Oct 2017') 
lb.insert(2, 'Sat, 14 Oct 2017') 
lb.insert(3, 'Sun, 15 Oct 2017') 
lb.insert(4, 'Mon, 16 Oct 2017') 
lb.insert(5, 'Tues, 17 Oct 2017') 
lb.insert(6, 'Wed, 18 Oct 2017') 
lb.insert(7, 'Thurs, 19 Oct 2017') 
lb.insert(8, 'Latest') 

lb.place(relx = 0.5, rely = 0.5, anchor="center") 
+0

대단히 고마워요. 일단 .pack()을 없애면 효과가있었습니다. 같은 창에 2를 넣을 수 없다는 것을 깨닫지 못했습니다. –

+0

동일한 창에서 두 개의 지오메트리 관리자를 절대로 사용해서는 안되며 따라서 하나의 객체에 두 개의 지오메트리 관리자를 사용해서는 안됩니다. –

+1

참고 : 위젯을 원한다면 창 중간에'place'를 사용하고 싶다면, place는 상대 좌표를 지정할 수 있도록 해줍니다. 나는'장소 '를 거의 선택하지 않지만 아주 간단한 요구에 매우 유용합니다. –