Advertisement
Guest User

Untitled

a guest
Apr 29th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. import wx
  2.  
  3. class MyTree(wx.TreeCtrl):
  4.  
  5. def __init__(self, parent, id, pos, size, style):
  6. wx.TreeCtrl.__init__(self, parent, id, pos, size, style)
  7.  
  8. class TreePanel(wx.Panel):
  9.  
  10. def __init__(self, parent):
  11. wx.Panel.__init__(self, parent)
  12. main_sizer = wx.BoxSizer(wx.VERTICAL)
  13.  
  14. self.tree = MyTree(self, wx.ID_ANY, wx.DefaultPosition,
  15. wx.DefaultSize,
  16. wx.TR_HAS_BUTTONS)
  17. self.root = self.tree.AddRoot('Your Websites')
  18. main_sizer.Add(self.tree, 1, wx.EXPAND | wx.ALL, 5)
  19.  
  20. new_site = wx.Button(self, label='New Site')
  21. new_site.Bind(wx.EVT_BUTTON, self.on_new_site)
  22. main_sizer.Add(new_site, 0, wx.ALL, 5)
  23.  
  24. self.SetSizer(main_sizer)
  25.  
  26. def on_new_site(self, event):
  27. item = self.tree.AppendItem(self.root, 'New site')
  28. self.tree.Expand(self.root)
  29. self.tree.EditLabel(item)
  30.  
  31.  
  32. class GeneralPanel(wx.Panel):
  33.  
  34. def __init__(self, parent):
  35. super().__init__(parent)
  36.  
  37. main_sizer = wx.BoxSizer(wx.VERTICAL)
  38.  
  39. host_sizer = wx.BoxSizer()
  40. lbl_size = (100, -1)
  41. host_lbl = wx.StaticText(self, label='Host:', size=lbl_size)
  42. host_sizer.Add(host_lbl, 0, wx.ALL | wx.CENTER, 5)
  43. self.host = wx.TextCtrl(self)
  44. host_sizer.Add(self.host, 1, wx.ALL | wx.EXPAND, 5)
  45.  
  46. port_lbl = wx.StaticText(self, label='Port:')
  47. host_sizer.Add(port_lbl, 0, wx.ALL | wx.CENTER, 5)
  48. self.port = wx.TextCtrl(self, size=(50, -1))
  49. host_sizer.Add(self.port, 0, wx.ALL, 5)
  50. main_sizer.Add(host_sizer, 0, wx.EXPAND)
  51.  
  52. user_sizer = wx.BoxSizer()
  53. user_lbl = wx.StaticText(self, label='User:', size=lbl_size)
  54. user_sizer.Add(user_lbl, 0, wx.ALL | wx.CENTER, 5)
  55. self.user = wx.TextCtrl(self)
  56. user_sizer.Add(self.user, 1, wx.ALL | wx.EXPAND, 5)
  57. main_sizer.Add(user_sizer, 0, wx.EXPAND)
  58.  
  59. pw_sizer = wx.BoxSizer()
  60. pw_lbl = wx.StaticText(self, label='Password:', size=lbl_size)
  61. pw_sizer.Add(pw_lbl, 0, wx.ALL | wx.CENTER, 5)
  62. self.password = wx.TextCtrl(self, style=wx.TE_PASSWORD)
  63. pw_sizer.Add(self.password, 1, wx.ALL | wx.EXPAND, 5)
  64. main_sizer.Add(pw_sizer, 0, wx.EXPAND)
  65.  
  66. self.SetSizer(main_sizer)
  67.  
  68.  
  69. class MainPanel(wx.Panel):
  70.  
  71. def __init__(self, parent):
  72. super().__init__(parent)
  73.  
  74. self.create_ui()
  75.  
  76. def create_ui(self):
  77. """
  78. Create the XML editor widgets
  79. """
  80. page_sizer = wx.BoxSizer(wx.VERTICAL)
  81.  
  82. splitter = wx.SplitterWindow(self)
  83. self.tree_panel = TreePanel(splitter)
  84.  
  85. notebook = wx.Notebook(splitter)
  86. general_panel = GeneralPanel(notebook)
  87. notebook.AddPage(general_panel, 'General')
  88.  
  89. splitter.SplitVertically(self.tree_panel, notebook)
  90. splitter.SetMinimumPaneSize(400)
  91. page_sizer.Add(splitter, 1, wx.ALL|wx.EXPAND, 5)
  92.  
  93. line = wx.StaticLine(self)
  94. page_sizer.Add(line, 0, wx.EXPAND)
  95.  
  96. connect_btn = wx.Button(self, label='Connect')
  97. page_sizer.Add(connect_btn, 0, wx.ALL | wx.CENTER, 5)
  98.  
  99. self.SetSizer(page_sizer)
  100. self.Layout()
  101.  
  102.  
  103. class MainFrame(wx.Frame):
  104.  
  105. def __init__(self):
  106. wx.Frame.__init__(self, parent=None, title='Site Manager',
  107. size=(800, 600))
  108. panel = MainPanel(self)
  109. self.Show()
  110.  
  111.  
  112. if __name__ == '__main__':
  113. app = wx.App(redirect=False)
  114. frame = MainFrame()
  115. app.MainLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement