2010-12-29 4 views
4

파이썬에서 Tkinter를 사용하여 간단한 GUI 응용 프로그램을 만들고 있지만 단일 프레임에 스크롤 막대를 추가하는 데 문제가 있습니다. 프레임은 내 20 "에서 위에서 아래로 볼 수 있지만 넷북이나 다른 저해상도 화면에 모든 것을 표시하려면 스크롤바가 필요합니다. 목록 상자를 사용하면 어떻게 작동하는지 알 수 있습니다.파이썬 tk 스크롤 프레임?

framelist = Tkinter.Frame(self.pmaster, relief=FLAT, borderwidth=0) 
framelist.pack(fill=BOTH, padx=0, pady=0) 
yscroll = Tkinter.Scrollbar(framelist, width=10, orient=VERTICAL) 
yscroll.pack(fill=Y,side=RIGHT,padx=0,pady=0) 

이 분명히. 당신에서이 문제에 어떤 도움이 사람이 깊이 이해할 수있을 것이다 프레임이 작동하지 않지만! Tkinter를이 오래된 될 수 있다면 나 또한 궁금하네요

을. 그것은 유일한 GUI 인터페이스했다 나는 학교에서 배웠지 만, 몇 년 전만해도, 그것은 더 이상 나의 요구를 실제로 충족시키지 못합니다. 확실히 더 나은 대안이 있어야만합니까? 저는 우분투에 있습니다 .BBY

답변

6

tkinter의 프레임 위젯이 스크롤하지 않습니다. 한 가지 해결책은 전체 프레임을 캔바스 (캔버스 객체)에 넣고 스크롤 막대를 캔바스에 연결하는 것입니다. 캔버스에 스크롤 가능한 영역의 크기를 알려 주어야합니다.이 영역은 모든 위젯을 배치 한 후에 프레임의 크기를 가져 와서 수행 할 수 있습니다. 그러나 UI 디자인을 재고하고 싶을 수도 있습니다. 스크롤 할 수있는 프레임은 사용하는 GUI 툴킷과 상관없이 사용하기가 쉽지 않습니다.

Tkinter가 시대에 뒤진 지 여부 ... 일부는 그렇다고 대답하고, 일부는 아니오라고 말합니다. 거기에는 많은 tkinter 잘못된 정보가 있으므로 모든 tkinter 의견을 소금 한 알 (심지어 내 것!)로 가져 가십시오. Tkinter는 계속해서 발전하고 정체되지 않았습니다. 파이썬 2.7 이상을 사용할 수 있다면 ttk 위젯에 액세스 할 수 있습니다. 플랫폼 위주의 테마와 노트북 및 계층 적 트리와 같은 추가 위젯을 제공합니다.

대안을 보려면 wxPython을 확인해보십시오. 제 경험상 tkinter보다 더 많은 버그와 단점이있는 것으로 보이지만 더 많은 위젯을 가지고 있으며 더 인기가있는 것으로 보입니다.

저는 tkinter와 wxPython의 차이점이 Home Depot (주택 개조/요추 저장소)와 Ikea (조립식 가구)의 차이점과 같다고 생각합니다. 하나는 모든 비트와 조각을 제공합니다 (tkinter) 원하는 것을 만들려면 다른 패키지가 많이 있습니다. 각 접근법에는 장점과 약점이 있습니다.

+0

철저한 답변을 보내 주셔서 감사합니다. 캔버스 안의 프레임을 엉망으로 만드는 것은 지저분한 해결 방법이 아닌 "실제"솔루션처럼 보이기 때문에 UI 디자인을 재고 할 것입니다. wxPython에 대해서도 살펴볼 것입니다. 그러나 새롭고 흥미로운 것을 제공하지 않는다면 아마도이 프로젝트를 위해 Tkinter를 고수 할 것입니다. – frigg

+0

ttk는 Python 2.6에서 작동합니다. – Gonzo