Добавление полосы прокрутки в sizer - PullRequest
4 голосов
/ 05 июня 2010

Я использую wxPython 2.8, и я пытаюсь добавить возможности полосы прокрутки на правой стороне wx.Frame. Эта "правая сторона" является классификатором; Я пытался использовать wx.ScrolledWindow, но, кажется, работает только на wx.Frame. Должен ли я добавить wx.Panel на клиенте полосы прокрутки? Как ? Есть ли пример?

Это фрагмент кода, в котором я создаю «правильный» классификатор:

btnSizer = wx.GridSizer (6, num_art_per_riga)

for elemento in lista_elementi:
    self.button = MyButton(self.scroll, elemento.descrizionebreve, elemento.descrizione, is_articolo)

    self.button.Bind(wx.EVT_BUTTON , self.aggiungi_su_listbox)
    btnSizer.Add(self.button, proportion=0, flag=wx.ALIGN_LEFT|wx.EXPAND, border=0)
btnSizer.Layout()     

box = wx.StaticBox(self.scroll, -1, descrizione_box)
staticSizer = wx.StaticBoxSizer(box, wx.VERTICAL)
staticSizer.Add(btnSizer)
self.toolbar.Add(staticSizer)      # this is the sizer at the right side

self.scroll.SetVirtualSize((600, 400)) #this is the scroll !

В этом примере «панель инструментов» не отображается, ничего не отображается. Свиток создается с помощью следующего конструктора:

 self.scroll = wx.ScrolledWindow(self, -1)

где self - это wx.Panel.

Спасибо за любую помощь

Ответы [ 2 ]

3 голосов
/ 20 июня 2010

Попробуйте использовать ScrolledPanel , это "лучшее" ScrolledWindow.
(И убедитесь, что вы назначаете классификатор для панели)

0 голосов
/ 16 июня 2010

Чтобы ответить на один из ваших вопросов, есть много примеров. Загрузите wxPython Docs and Demos, и у вас будет много примеров для подражания.

...