2017-03-02 3 views
0

파이썬에서 2 개의 박스 컨테이너를 가로로 정렬 한 윈도우가 있는데, 하나는 사이드 바가되고 다른 하나는 텍스트 뷰이어야합니다. 사이드 바는 텍스트보기보다 커지고 창 크기를 조정하면 크기가 조정되어 여전히 텍스트보기를 따라 잡습니다. 이 문제를 해결하려면 어떻게해야합니까? The program I'm trying to make. Look at the dominant size of the sidebar at left.비 확장 Gtk + 3 사이드 바 (파이썬에서 트리 뷰형 인터페이스 용)

텍스트보기 ("textview") 및 사이드 바 ("editview")를 만드는 데 사용하는 코드입니다. 이것은 내 코드의 일부입니다!

def __init__(self): 
    Gtk.Window.__init__(self, title="Translator") 

    self.box = Gtk.Box(spacing=0) 
    self.add(self.box) 

    self.box_editview = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0, expand=False) 
    self.box.pack_start(self.box_editview, True, True, 0) 

    vseparator = Gtk.Separator(orientation=Gtk.Orientation.VERTICAL) 
    self.box.pack_start(vseparator, False, False, 0) 

    self.box_textview = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0) 
    self.box.pack_start(self.box_textview, True, True, 0) 

    self.css_styling() 
    self.create_textview() 
    self.create_editview() 

def create_editview(self): 
    self.palette1 = Gtk.Expander() 
    self.palette1.set_spacing(6) 
    self.palette1.set_label('Main') 
    self.palette1.set_size_request(100,400) 

    self.box_editview.pack_start(self.palette1, False, False, 0) 

    grid = Gtk.Grid() 
    label = Gtk.Label(" font ") 
    button = Gtk.Button.new_with_label("some very cool font") 
    grid.add(label) 
    grid.add(button) 
    self.palette1.add(grid) 

def create_textview(self): 
    scrolledwindow1 = Gtk.ScrolledWindow() 
    scrolledwindow1.set_hexpand(True) 
    scrolledwindow1.set_vexpand(True) 
    self.box_textview.pack_start(scrolledwindow1, True, True, 0) 

    self.textview = Gtk.TextView() 
    self.textview.set_wrap_mode(Gtk.WrapMode.WORD) 
    self.textbuffer = self.textview.get_buffer() 
    self.textbuffer.set_text("text") 
    scrolledwindow1.add(self.textview) 
+0

봐. – andlabs

+0

GtkPaned를 보았지만 사이드 바의 크기를 파일 관리자처럼 사용자가 확장 할 수 없도록하고 싶습니다. 어쨌든, 지금은 그걸 묶을거야. – user258456

+0

사이드 바 상자에 'width_request'설정을 시도 했습니까? – theGtknerd

답변

0

당신은 시도 할 수 : GtkPaned에

self.box_editview = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0, width_request=200) 
self.box.pack_start(self.box_editview, False, False, 0)