Форум сайта python.su
Приветствую. Буквально 3 дня назад я начал заниматься графической разработкой под Linux на wxPy для сдачи проектов по курсу программирования. На данном этапе я должен написать Paint, и одним из заданий было - написание скроллбаров для пролистывания окна. И с этим у меня случилась проблема. Как угодно пробовал создавать скроллбары для ScrolledWindow виджета, никак не появляются. Был даже случай, когда вроде работает, но панели рисования почему то не редактируется по размеру, и застревает в бесконечном 1х1 пикселей. Пример такого кода я приведу ниже:
#Панель рисования DrawScroller = ScrolledWindow(PaintFrame, ID_ANY) DrawScroller.SetScrollRate(5, 5) DrawScroller.EnableScrolling(True, True) DrawScroller.SetSize(Size(685, 600-51)) DrawScroller.Move(Point(115, 0)) DrawPanel = Panel(DrawScroller, ID_ANY) DrawPanel.SetSize(Size(685, (600-51) )) DrawPanel.Move(Point(0, 0)) Paint = PaintZone(DrawPanel) Paint.Clear() ScrollBarV = BoxSizer(VERTICAL) ScrollBarH = BoxSizer(HORIZONTAL) ScrollBarH.Add(DrawPanel) ScrollBarV.Add(ScrollBarH) DrawScroller.SetSizer(ScrollBarV)
Отредактировано AriosJentu (Ноя. 19, 2016 18:05:55)
Офлайн
http://www.java2s.com/Tutorial/Python/0380__wxPython/ScrollbarExample.htm
import wx class ScrollbarFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, 'Scrollbar Example', size=(300, 200)) self.scroll = wx.ScrolledWindow(self, -1) self.scroll.SetScrollbars(1, 1, 600, 400) self.button = wx.Button(self.scroll, -1, "Scroll Me", pos=(50, 20)) self.Bind(wx.EVT_BUTTON, self.OnClickTop, self.button) self.button2 = wx.Button(self.scroll, -1, "Scroll Back", pos=(500, 350)) self.Bind(wx.EVT_BUTTON, self.OnClickBottom, self.button2) def OnClickTop(self, event): self.scroll.Scroll(600, 400) def OnClickBottom(self, event): self.scroll.Scroll(1, 1) app = wx.PySimpleApp() frame = ScrollbarFrame() frame.Show() app.MainLoop()
Отредактировано leonid_10 (Дек. 10, 2016 12:25:07)
Офлайн