Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. import wx
  2. from ObjectListView import (ObjectListView, ColumnDefn)
  3.  
  4. class MainFrame(wx.Frame):
  5. MIN_SIZE = (500, 400)
  6. def __init__(self, *args, **kwargs):
  7. super(MainFrame, self).__init__(None, *args, **kwargs)
  8. self.panel = MainPanel(self)
  9. sizer = wx.BoxSizer(wx.VERTICAL)
  10. sizer.Add(self.panel)
  11. self.SetSizer(sizer)
  12. self.Center()
  13. self.SetMinSize(self.MIN_SIZE)
  14. self.Show()
  15. widgets = [Widget('a'), Widget('b'),Widget('c')]
  16. self.panel.olv_widgets.SetObjects(widgets)
  17.  
  18. def on_olv_widgets_right_down(self,event):
  19. self.PopupMenu(UpDownMenu(self), event.GetPosition())
  20. print(event.GetPosition())
  21.  
  22. def on_cell_select(self, event):
  23. print('on_cell_select')
  24.  
  25. def move_item_down(self, event):
  26. print('move_item_down')
  27.  
  28. def move_item_up(self, event):
  29. print('move_item_up')
  30.  
  31. class MainPanel(wx.Panel):
  32. LIST_SIZE = (2000, 2000)
  33. def __init__(self, parent, *args, **kwargs):
  34. super(MainPanel, self).__init__(parent, *args, **kwargs)
  35.  
  36. self.olv_widgets = ObjectListView(self, wx.ID_ANY,
  37. style=wx.LC_REPORT|wx.SUNKEN_BORDER,
  38. size=self.LIST_SIZE)
  39. self.olv_widgets.SetColumns(
  40. [ColumnDefn('Widget', 'left', parent.MIN_SIZE[0],
  41. 'description', isSpaceFilling=True)])
  42.  
  43. self.olv_widgets.Bind(wx.EVT_RIGHT_DOWN, parent.on_olv_widgets_right_down)
  44. self.olv_widgets.Bind(wx.EVT_LIST_ITEM_SELECTED, parent.on_cell_select)
  45.  
  46. sizer = wx.BoxSizer(wx.VERTICAL)
  47. sizer.Add(self.olv_widgets, proportion=1, flag=wx.EXPAND)
  48. self.SetSizer(sizer)
  49. sizer.Fit(self)
  50.  
  51.  
  52. class UpDownMenu(wx.Menu):
  53. def __init__(self, parent):
  54. super(UpDownMenu, self).__init__()
  55. up_menu_item = wx.MenuItem(self, wx.NewId(), 'Move item up')
  56. self.Append(up_menu_item)
  57. self.Bind(wx.EVT_MENU, parent.move_item_up, up_menu_item)
  58. down_menu_item = wx.MenuItem(self, wx.NewId(), 'Move item down')
  59. self.Append(down_menu_item)
  60. self.Bind(wx.EVT_MENU, parent.move_item_down, down_menu_item)
  61.  
  62.  
  63. class Widget(object):
  64. def __init__(self, description):
  65. self.description = description
  66.  
  67. if __name__ == '__main__':
  68. wx_app = wx.App()
  69. MainFrame()
  70. wx_app.MainLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement