wxPython实现分隔窗口
作者:江之隐 时间:2022-11-29 20:45:05
本文实例为大家分享了wxPython分隔窗口的具体代码,供大家参考,具体内容如下
1、分割窗口
分隔窗口(wx.SplitterWindow)就是将窗口分成两部分,即左右或上下两部分,如下图所示窗口,整体上分为左右两个窗口,右窗口又分为上下两窗口,两个窗口之间的分隔线是可以拖动的,称为“窗框”(sash)。
wx.SplitterWindow中一个常用的方法有:
SplitVertically(window1, window2, sashPosition=0)。设置左右布局的分隔窗口,window1为左窗口,window2为右窗口,sashPosition是窗口的位置。
SplitHorizontally(window1, window2, sashPosition=0)。设置上下布局的分隔窗口,window1为上窗口,window2为下窗口,sashPosition是窗口的位置。
SetMinimumPaneSize(paneSize)。设置最小窗口尺寸,如果是左右布局是指左窗口的最小尺寸,如果是上下布局是指上窗口的最小尺寸。如果没有设置则默认为0。
如下图为一个分割窗口,采用的是左右分割,左右两边各放一个面板。左边面板设置一个垂直box管理器,并添加上一个ListBox控件;然后给控件绑上事件处理,获取事件内容并在右侧的StaticText上显示出来。
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、运行结果如下:
来源:https://blog.csdn.net/qq_36728361/article/details/81592632
标签:wxPython,分隔窗口


猜你喜欢
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