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 shell简化开发
Aug 08 Python
Python3中exp()函数用法分析
Feb 19 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 Python
Python list运算操作代码实例解析
Jan 20 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
python实现学生成绩测评系统
Jun 22 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 Python
如何用python写个模板引擎
Jan 14 Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 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
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
js下获取div中的数据的原理分析
2010/04/07 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
JS实现轮播图效果
2020/01/11 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
音乐系毕业生自荐信
2013/10/27 职场文书
毕业生优秀推荐信
2013/11/26 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
主办会计岗位职责
2014/03/13 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
求职教师自荐书
2014/06/19 职场文书
具结保证书
2015/01/17 职场文书
道歉情书大全
2015/05/12 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js