2013-04-15 4 views
1

제 레이아웃에서 상자 레이아웃을 많이 사용합니다. 내가 본 대부분의 튜토리얼에서 사람들은 HBoxVBox을 사용할 것입니다. 나는 Box이 그렇게 많이 다를 것이라고 생각하지 않았습니다.Python GtkBuilder가 Glade 3.14에서 Box 위젯을 가져올 수 없습니다.

GtkBuilder 비참하게된다는 언제 내가 나에게 다음과 같은 오류 메시지가주는 습지 파일에 Box 레이아웃을 가지고 :이를 검토 한

Gtk:ERROR:/build/buildd/gtk+3.0-3.6.0/./gtk/gtknotebook.c:1235:gtk_notebook_buildable_add_child: assertion failed: (page != NULL)

을, 그들이 가지고 최선의 응답에 있었다 다시 Glade 3.8로 되돌아갑니다. Glade 3.8은 GTK + 2 용으로 설계 되었기 때문에 GTK + 3 용으로 개발하고 싶습니다. (저는 Gnome 쉘 인터페이스를 정말 좋아합니다). 따라서 3.14를 고수하려고합니다.

Box 레이아웃을 지원하는 GtkBuilder의 다른 버전이 있습니까? Glade 개발자가 해당 GtkBuilder 개체를 업데이트하지 않고도 그런 지원을 중단한다는 것은 이상한 것 같습니다.

from gi.repository import Gtk 

class MainWindow(object): 

    def __init__(self): 
     self.builder = Gtk.Builder() 
     self.builder.add_from_file('main-window.glade') 

     self.window = self.builder.get_object('mainWindow') 

     self.builder.connect_signals(self) 

어떤 도움이나 조언이 많이 감사합니다 :

다음은 인터페이스를 만듭니다 파이썬 코드입니다!

+0

GtkBox의 문제점은 무엇이라고 생각하십니까? 오류는 노트북이 아이를 추가 할 수 없다고 말합니다. 빈틈이있는 매우 작은 테스트 케이스가 있습니까? GtkWindow, GtkNotebook, 페이지 내부의 GtkBox 및 GtkBox 내부의 GtkLabel을 말하십시오. – gpoo

+0

오류 메시지를 더 잘 읽어야합니다 ... 내 GtkNotebook의 일부 페이지에 아무 것도 없다는 것을 알았습니다. 그러면 왜 '어설 션 실패 : (page! = NULL)'에 대해 불평하는지 설명 할 수 있습니다. 그냥 철저히하기 위해서, 나는 빈 공간을 남겨 두는 것을 포함하여'Box' 레이아웃으로 몇 가지 테스트를했고, 잘 작동합니다. 당신의 도움을 주셔서 대단히 감사합니다. –

+0

답변으로 추가하고 동의해야합니다. 미래에 다른 사람들이 그 혜택을 볼 수도 있습니다. – gpoo

답변

1

감사는이 문제를 알아내는 저를 도와 gpoo합니다 :

것은 당신의 오류 메시지를 읽을 수 있는지 확인하십시오!GtkNotebook에 빈 페이지가있어서 GtkBuilder이 불만을 나타 냈습니다. 빈 페이지가 없습니다.

또한 GtkBox은 모든 순열 (적어도 파이썬 인터페이스는 어쨌든)에서 잘 작동합니다.

+0

아, 솔루션을 찾은 것을 기쁘게 생각합니다. 나는 GTK +로 소스 다이빙을하고 있었지만 여전히 인터페이스 디자이너의 빈 페이지가 문제라는 것을 깨닫지 못했습니다. gtknotebook.c 코드는 누락 * 페이지에 대해 불평합니다. Glade (여기 3.6.7) UI도 여기서는 그리 명확하지 않습니다. 빈 페이지를 빈 것으로 표시하지만 기존 페이지로 표시합니다. –

+0

노트북과 똑같은 문제가있었습니다. 그리고 글래 이드 3.18에 합격 한 것을 다소 후회합니다 ... 너무 느립니다. 이유는 모르겠지만 3.6GHz 컴퓨터에서도 디스플레이를 새로 고치는 데 1 초 이상 걸립니다. 나는 gtk3로 변환하는 것을 후회하지 않기를 바란다 ... – jcoppens