wxPython实现分隔窗口

作者:江之隐 时间:2022-11-29 20:45:05 

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

1、分割窗口

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

wxPython实现分隔窗口

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

  • SplitVertically(window1, window2, sashPosition=0)。设置左右布局的分隔窗口,window1为左窗口,window2为右窗口,sashPosition是窗口的位置。

  • SplitHorizontally(window1, window2, sashPosition=0)。设置上下布局的分隔窗口,window1为上窗口,window2为下窗口,sashPosition是窗口的位置。

  • SetMinimumPaneSize(paneSize)。设置最小窗口尺寸,如果是左右布局是指左窗口的最小尺寸,如果是上下布局是指上窗口的最小尺寸。如果没有设置则默认为0。

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

 wxPython实现分隔窗口

2、代码实现

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


import wx

# 自定义窗口类MyFrame
class MyFrame(wx.Frame):
def __init__(self):
 super().__init__(parent=None, title="分隔窗口", size=(450, 300))
 self.Center()
 swindow = wx.SplitterWindow(parent=self, id=-1)
 left = wx.Panel(parent=swindow)
 right = wx.Panel(parent=swindow)
 # 设置左右布局的分割窗口left和right
 swindow.SplitVertically(left, right, 100)
 # 设置最小窗格大小,左右布局指左边窗口大小
 swindow.SetMinimumPaneSize(80)
 # 创建一个ListBox对象
 self.list = ['苹果', '橘子', '香蕉', '梨子', '芒果']
 lb2 = wx.ListBox(left, 1, choices=self.list, style=wx.LB_SINGLE)
 self.Bind(wx.EVT_LISTBOX, self.on_listbox, lb2)
 # 为left面板设置一个布局管理器
 vbox1 = wx.BoxSizer(wx.VERTICAL)
 left.SetSizer(vbox1)
 vbox1.Add(lb2, 1, flag=wx.EXPAND | wx.ALL, border=5)
 # 为right面板设置一个布局管理器
 vbox2 = wx.BoxSizer(wx.VERTICAL)
 right.SetSizer((vbox2))
 self.st = wx.StaticText(right, 2, label='请选择')
 vbox2.Add(self.st, 1, flag=wx.EXPAND | wx.ALL, border=5)

def on_listbox(self, event):
 self.st.SetLabelText(event.GetString())

class App(wx.App):
def OnInit(self):
 # 创建窗口对象
 frame = MyFrame()
 frame.Show()
 return True

def OnExit(self):
 print("应用程序退出")
 return 0

if __name__ == '__main__':
app = App()
app.MainLoop()

3、运行结果如下:

wxPython实现分隔窗口

来源:https://blog.csdn.net/qq_36728361/article/details/81592632

标签:wxPython,分隔窗口
0
投稿

猜你喜欢

  • SQL Server2005打开数据表中的XML内容时报错的解决办法

    2024-01-18 01:32:12
  • Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解

    2023-11-16 22:45:05
  • pandas每次多Sheet写入文件的方法

    2022-02-07 03:50:39
  • python数据结构链表之单向链表(实例讲解)

    2021-01-17 12:51:19
  • python使用mysqldb连接数据库操作方法示例详解

    2024-01-28 19:13:57
  • Notice: Undefined index: page in E:\\PHP\\test.php on line 14

    2023-10-27 20:04:46
  • 在ASP中使用SQL语句之6:存储过程查询

    2007-08-11 12:44:00
  • Django之全局使用request.user.username的实例详解

    2021-07-20 20:50:42
  • python读取oracle函数返回值

    2022-10-07 23:47:48
  • Python中的 ansible 动态Inventory 脚本

    2022-10-23 07:53:08
  • Mysql json类型字段Java+Mybatis数据字典功能的实践方式

    2024-01-22 00:24:34
  • pytorch 图像预处理之减去均值,除以方差的实例

    2022-04-20 13:43:45
  • Python Numpy中ndarray的常见操作

    2023-08-03 14:27:32
  • python模块如何查看

    2021-10-26 20:08:35
  • php发送get、post请求的6种方法简明总结

    2023-11-14 12:59:43
  • ASP 函数语法速查表

    2010-03-17 20:59:00
  • 用python + openpyxl处理excel2007文档思路以及心得

    2022-10-14 04:56:56
  • python将txt文件读入为np.array的方法

    2023-07-23 08:10:29
  • Python OpenCV超详细讲解读取图像视频和网络摄像头

    2023-11-26 05:22:36
  • python中查看.db文件中表格的名字及表格中的字段操作

    2022-03-17 22:00:29
  • asp之家 网络编程 m.aspxhome.com