PyGTK: проблема с размером ScrolledWindow - PullRequest
2 голосов
/ 02 января 2011

Я использую PyGTK и gtk.Assistant.На одной странице я поместил вид дерева (один столбец, только строки) в gtk.ScrolledWindow (я хотел вертикальную полосу прокрутки, так как список содержит около 35 элементов).Все работает нормально;единственное, что меня беспокоит, - это то, что я не смог выяснить из документации, как установить размер прокручиваемого окна.В настоящее время только три элемента отображаются одновременно;Я хотел бы установить это число на 10 или около того.

Ниже приведен код.Как вы можете видеть, я пытался использовать gtk.Adjustment, чтобы повлиять на размер прокручиваемого окна, но поскольку - еще раз - я был некомпетентен при извлечении необходимой информации из документации, на самом деле я не знаю, какие значения следует вводить втам.

    self.page7 = gtk.VBox()

    # The gtk.Adjustment:
    page_size    = gtk.Adjustment(lower=10, page_size=100) # just used some arbitrary numbers here >_<
    scrolled_win = gtk.ScrolledWindow(page_size)
    scrolled_win.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) # only display scroll bars when required

    self.character_traits_treeview  = gtk.TreeView()
    self.character_traits_treestore = gtk.TreeStore(str)
    self.character_traits_treeview.set_model(self.character_traits_treestore)

    tc = gtk.TreeViewColumn("Character traits")
    self.character_traits_treeview.append_column(tc)
    cr = gtk.CellRendererText()
    tc.pack_start(cr, True)
    tc.add_attribute(cr, "text", 0)

    self.character_trait_selection = self.character_traits_treeview.get_selection()
    self.character_trait_selection.connect('changed', self.check_number_of_character_trait_selections)
    self.character_trait_selection.set_mode(gtk.SELECTION_MULTIPLE)

    self.make_character_traits_treestore()

    # adding the treeview to the scrolled window:
    scrolled_win.add(self.character_traits_treeview)
    self.page7.pack_start(scrolled_win, False, False, 0)

    self.assistant.append_page(self.page7)
    self.assistant.set_page_title(self.page7, "Step 7: Select 2-3 character traits")
    self.assistant.set_page_type(self.page7, gtk.ASSISTANT_PAGE_CONTENT)
    self.assistant.set_page_complete(self.page7, False)

def check_number_of_character_trait_selections(self, blah):
    # ...

def make_character_traits_treestore(self):
    # ...

Я знаю, что должен RTFM, но так как я не могу понять, как это сделать, и дальнейшие поиски тоже были бесполезны, я просто надеюсь, что кто-тоздесь можно дать мне подсказку.

Большое спасибо заранее!

PS: Вот ссылки на:

1 Ответ

2 голосов
/ 03 января 2011

Я был очень, очень глуп, это была просто проблема с упаковкой> _ <</p>

Эта строка

self.page7.pack_start(scrolled_win, False, False, 0)

должна читать

self.page7.pack_start(scrolled_win, True, True, 0)

!

Теперь все выглядит так, как я хочу.

...