wxPython实现分隔窗口

前端之家收集整理的这篇文章主要介绍了wxPython实现分隔窗口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例为大家分享了wxPython分隔窗口的具体代码,供大家参考,具体内容如下

1、分割窗口

分隔窗口(wx.SplitterWindow)就是将窗口分成两部分,即左右或上下两部分,如下图所示窗口,整体上分为左右两个窗口,右窗口又分为上下两窗口,两个窗口之间的分隔线是可以拖动的,称为“窗框”(sash)。

wxPython实现分隔窗口


wx.SplitterWindow中一个常用的方法有:

  • SplitVertically(window1,window2,sashPosition=0)。设置左右布局的分隔窗口,window1为左窗口,window2为右窗口,sashPosition是窗口的位置。
  • SplitHorizontally(window1,sashPosition=0)。设置上下布局的分隔窗口,window1为上窗口,window2为下窗口,sashPosition是窗口的位置。
  • SetMinimumPaneSize(paneSize)。设置最小窗口尺寸,如果是左右布局是指左窗口的最小尺寸,如果是上下布局是指上窗口的最小尺寸。如果没有设置则默认为0。

如下图为一个分割窗口,采用的是左右分割,左右两边各放一个面板。左边面板设置一个垂直Box管理器,并添加上一个ListBox控件;然后给控件绑上事件处理,获取事件内容并在右侧的StaticText上显示出来。

wxPython实现分隔窗口


2、代码实现

上图的代码实现如下所示:

  1. import wx
  2.  
  3. # 自定义窗口类MyFrame
  4. class MyFrame(wx.Frame):
  5. def __init__(self):
  6. super().__init__(parent=None,title="分隔窗口",size=(450,300))
  7. self.Center()
  8. swindow = wx.SplitterWindow(parent=self,id=-1)
  9. left = wx.Panel(parent=swindow)
  10. right = wx.Panel(parent=swindow)
  11. # 设置左右布局的分割窗口left和right
  12. swindow.SplitVertically(left,right,100)
  13. # 设置最小窗格大小,左右布局指左边窗口大小
  14. swindow.SetMinimumPaneSize(80)
  15. # 创建一个ListBox对象
  16. self.list = ['苹果','橘子','香蕉','梨子','芒果']
  17. lb2 = wx.ListBox(left,1,choices=self.list,style=wx.LB_SINGLE)
  18. self.Bind(wx.EVT_LISTBox,self.on_listBox,lb2)
  19. # 为left面板设置一个布局管理器
  20. vBox1 = wx.BoxSizer(wx.VERTICAL)
  21. left.SetSizer(vBox1)
  22. vBox1.Add(lb2,flag=wx.EXPAND | wx.ALL,border=5)
  23. # 为right面板设置一个布局管理器
  24. vBox2 = wx.BoxSizer(wx.VERTICAL)
  25. right.SetSizer((vBox2))
  26. self.st = wx.StaticText(right,2,label='请选择')
  27. vBox2.Add(self.st,border=5)
  28.  
  29. def on_listBox(self,event):
  30. self.st.SetLabelText(event.GetString())
  31.  
  32. class App(wx.App):
  33. def OnInit(self):
  34. # 创建窗口对象
  35. frame = MyFrame()
  36. frame.Show()
  37. return True
  38.  
  39. def OnExit(self):
  40. print("应用程序退出")
  41. return 0
  42.  
  43. if __name__ == '__main__':
  44. app = App()
  45. app.MainLoop()

3、运行结果如下:

wxPython实现分隔窗口


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

猜你在找的Python相关文章