wxPython实现分隔窗口
作者:江之隐 发布时间:2022-11-29 20:45:05
标签:wxPython,分隔窗口
本文实例为大家分享了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


猜你喜欢
- 前言OpenCV是图像处理常用的库,作为初学者,往往从图片的读取、保存、查询图片的信息开始,下面将分享Python下OpenCV的一些基本使
- 在这篇asp之数学函数里,我们将会以表格的形式,让大家了解到关于ASP中能用到的数学函数,里面包括一个数的绝对值、一个数的平方根
- Python tkinter中label控件动态改变值最近在用tkinter做大作业,因为是第一次接触tkinter,所以会遇到很多问题。比
- AES加密方式有五种:ECB, CBC, CTR, CFB, OFB从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的p
- 本文实例讲述了Python使用当前时间、随机数产生一个唯一数字的方法。分享给大家供大家参考,具体如下:Python生成当前时间很简单,比Ja
- 这篇文章主要介绍了Python matplotlib画曲线例题解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 一、变量的定义 mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin...end 块中使用,变量必须定义在
- 语法格式:row_number() over(partition by 分组列 order by 排序列 desc)row_num
- 主题的修改:File -> Settings ,弹出的窗口中: Appearance & Behavior -> App
- 在一个大型的项目中,不可避免会出现操作时间的业务,比如时间的格式化,比如时间的加减,我们一般会直接使用moment.js库来做,毕竟稳定可靠
- wlile循环while True表示永远为真,不管是什么条件都会向下执行,下面是写的一个例子。#!/usr/bin/env pythona
- 1、变量和类型变量是一种存储数据的载体,也就是一个容器。计算机中的变量是实际存在的数据或者说是存储器中存储数据的一块内存空间,变量的值可以被
- 一、题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板
- 在使用Tensorflow的过程中,我们经常遇到数组形状不同的情况,但有时候发现二者还能进行加减乘除的运算,在这背后,其实是Tensorfl
- TFRecord作为tensorflow中广泛使用的数据格式,它跨平台,省空间,效率高。因为 Tensorflow开发者众多,统一训练时数据
- 第一个测试 “Hello Test!”首先,在我们$GOPATH/src目录下创建hello目录,作为本文涉及到的所有示例代码的根目录。然后
- 🔓一. CRUDCRUD : Create,Retrieve,Update,Delete新增数据查询数据修改数据删除数据MySQL的工作就是
- 问题描述尝试用Python写一个Wordcloud的时候,出现了编码问题。照着网上某些博客的说法添添改改后,结果是变成了“UnicodeDe
- 使用PyCharm工具写好的Python程序脚本,怎么将.py文件编译为可执行的.exe文件前提是已经安装了Python环境。第一步:在Py
- 本文实例讲述了python实现合并两个数组的方法。分享给大家供大家参考。具体如下:python合并两个数组,将两个数组连接成一个数组,例如,