wxPython实现分隔窗口


Posted in Python onNovember 19, 2019

本文实例为大家分享了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实现分隔窗口

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

Python 相关文章推荐
python 第三方库的安装及pip的使用详解
May 11 Python
python编程实现12306的一个小爬虫实例
Dec 27 Python
python简单实现操作Mysql数据库
Jan 29 Python
python 接口测试response返回数据对比的方法
Feb 11 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
python3实现猜数字游戏
Dec 07 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
python读写文件write和flush的实现方式
Feb 21 Python
在python中使用nohup命令说明
Apr 16 Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 Python
解决Pycharm 运行后没有输出的问题
Feb 05 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 Python
浅谈Python type的使用
Nov 19 #Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 #Python
Python算法的时间复杂度和空间复杂度(实例解析)
Nov 19 #Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 #Python
Python算法中的时间复杂度问题
Nov 19 #Python
wxPython窗体拆分布局基础组件
Nov 19 #Python
Python解压 rar、zip、tar文件的方法
Nov 19 #Python
You might like
PHP连接access数据库
2008/03/27 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
php函数与传递参数实例分析
2014/11/15 PHP
php强制下载文件函数
2016/08/24 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
浅析Python中else语句块的使用技巧
2016/06/16 Python
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
python中的for循环
2018/09/28 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
Python函数中的可变长参数详解
2019/09/12 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
护士自荐信范文
2013/12/15 职场文书
五年级音乐教学反思
2014/02/06 职场文书
党员目标管理责任书
2014/07/25 职场文书
离职感谢信怎么写
2015/01/22 职场文书
教代会开幕词
2015/01/28 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
企业党建工作总结2015
2015/05/26 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
致运动员加油稿
2015/07/21 职场文书
如何在Python中妥善使用进度条详解
2022/04/05 Python