Форум сайта python.su
Пытаюсь использовать компонент wx.ScrollBar. Мне требуется, чтобы через определенный промежуток времени он менял свои параметры. Соответственно, пытаюсь использовать функцию SetScrollbar, пользуясь документацией по wxWidgets.
То есть в теории приемлема форма:
scroll.SetScrollbar(position=a, thumbSize=b, range=c, pageSize=d, refresh=True)
Но wxPython требует какой-то неизвестный параметр orientation…
Методом проб и ошибок вывел:
scroll.SetScrollbar(orientation=a, position=b, thumbSize=c, range=d)
при этом названия и смысл параметров не совпадают, но соответствуют с порядком в документации wxWidgets. Хотя, может я чего-то не понимаю.
Офлайн
Не знаю какой wx.ScrollBar вы смотрели, но что-то вообще не то:
http://docs.wxwidgets.org/stable/wx_wxscrollbar.html#wxscrollbarctor
Офлайн
regallПро него и говорю. Конкретно про функцию wxScrollBar::SetScrollbar
Не знаю какой wx.ScrollBar вы смотрели, но что-то вообще не то:
http://docs.wxwidgets.org/stable/wx_wxscrollbar.html#wxscrollbarctor
scroll = wx.ScrollBar(self, -1)
#...
scroll.SetScrollbar(position=a, thumbSize=b, range=c, pageSize=d, refresh=True)
Отредактировано (Дек. 15, 2009 21:56:57)
Офлайн
Всё-таки хотелось бы, чтобы кто-то подтвердил или опровергнул мои замечания. Я использую версию 2.8.9.2 для Windows. Для проверки можно использовать код:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import wx
class MainWindow(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, parent=None, title="Test", size=(300, 200))
self.do_layout()
self.Bind(wx.EVT_BUTTON, self.on_button)
def do_layout(self):
sizer = wx.BoxSizer(wx.VERTICAL)
btn = wx.Button (self, wx.NewId(), "Button")
self.scroll = wx.ScrollBar(self, wx.NewId())
btnSizer = wx.BoxSizer()
btnSizer.Add(btn, flag=wx.ALIGN_CENTER)
sizer.Add(btnSizer, proportion=1, flag=wx.ALIGN_CENTER)
sizer.Add(self.scroll, flag=wx.ALIGN_BOTTOM | wx.EXPAND)
self.SetSizer(sizer)
self.Layout()
def on_button(self, evt):
range_ = self.scroll.GetRange() + 1
# must be:
# self.scroll.SetScrollbar(position=0, thumbSize=1, range=range_, pageSize=1, refresh=True)
self.scroll.SetScrollbar(orientation=0, position=1, thumbSize=range_, range=1, refresh=True)
if __name__ == "__main__":
app = wx.PySimpleApp(0)
mainWnd = MainWindow()
mainWnd.Show()
app.MainLoop()
Офлайн
так и есть
orientation это position
position это tumbSize
tumbSize это range
ну и range это pageSize
Отредактировано (Дек. 17, 2009 04:32:29)
Офлайн