2010-02-06 4 views
1

기본적으로, 내가하고 싶은 것은 gtk.Notebook의 탭 앞에 버튼을 두는 것입니다. 나 자신의 노트 타입 위젯을 만들려고 노력했지만 잘 작동했지만, 원하는대로 유연하게 만드는 데 더 많은 작업이 필요할 것이 었습니다. 또한 효율적이지 않았습니다. http://imagebin.ca/view/84SC0d.html 어떤 아이디어가 많이 주시면 감사하겠습니다PyGTK : gtk.Notebook의 탭 앞에 위젯 포장하기

, 감사 : 여기

내가 달성하기 위해 노력하고있어의 모형입니다.

벤.

+0

'에서 [2012 정리]의 일부 (로 제거 notebook' 태그 HTTP : //meta.stackexchange.com/questions/128315/the-great-stack-overflow-tag-question-cleanup-of-2012). –

답변

0

그것은 해킹,하지만 당신은 노트북에 대해 다음 스위치 페이지 이벤트를 등록하여 클릭되는 탭을 별도의 탭에서 위젯을 넣어, 다음 방지 할 수 있습니다 :이 아무튼 것을

def onTabsSwitchPage(self, notebook, page_notUsableInPython, pageNumber): 
    # Don't allow to switch to the dummy tab containing widgets 
    if pageNumber == <put correct tab number here>: 
     notebook.stop_emission("switch-page") 

주 모든 GTK 테마에 잘 어울리지는 않지만 작동합니다 ...

+0

제안 해 주셔서 감사합니다. 나는 이미 그것을 시도하고 당신이 말했듯이 그것은 최고로 보이지 않는다 ... 나는 내 자신의 위젯을 고수하고 그것을 더 잘 만들거나, GTK를 상속받는 위젯을 만들어 보려고한다. 노트 ptomato가 제안했다. 감사합니다. 어쨌든 :) –

0

자신의 노트 위젯을 만들지 않고는 아무 것도 할 수 없습니다. 몇 가지 해킹이 있습니다. 하나는 AndiDog에 의해 게시되었습니다. 또 하나는 탭을 모두 숨기고 (notebook.set_show_tabs(False)) 위젯 위에있는 단추가있는 툴바를 만들고 왼쪽에 단추가 있고 노트북의 각 탭에 대해 해당 페이지로 전환하는 단추 하나를 추가하는 것입니다. 페이지와 버튼 대신 처음부터 자신의 노트북 형 위젯을 만드는

, 당신은 컨테이너 아이들의 두 가지 유형을 처리하기 위해, expose_event, size_requestsize_allocate 같은 몇 가지 방법을 무시 gtk.Notebook에서 상속 할 수있다. 그래도 PyGTK에서 C 언어로만이 작업을 수행 할 수 있습니다.

탭 공간의 버튼이 실제로 원하는지 여부를 고려할 수도 있습니다. 사용자가 노트북의 크기를 작게 조정하여 일부 탭이 사라지면 어떻게합니까? 이전 탭/다음 탭 화살표는 어디에 있습니까? 버튼은 어떻게됩니까?

+0

빠른 응답을 주셔서 감사합니다. 이미 Andi가 제안한 해킹을 시도했는데 사용 가능한 공간보다 많은 탭이 있고 마지막 탭에있을 때 버튼이 사라지면 문제가 발생합니다. . 이전에 gtk.Notebook을 상속 받고 있었지만 PyGTK에 대한 많은 문서를 찾을 수 없었습니다. 이것이 분명히 최선의 선택이기 때문에 나는 내일 또 다른 표정을 가질 것이다. 두 번째 솔루션을 구현하는 방법을 찾지 못하면 자체 위젯을 만드는 방법으로 돌아가겠습니다. 제안 해 주셔서 감사합니다. :) –

관련 문제