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 相关文章推荐
CentOS6.5设置Django开发环境
Oct 13 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
python实现停车管理系统
Nov 30 Python
python实现图书借阅系统
Feb 20 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 Python
关于Python中定制类的比较运算实例
Dec 19 Python
Python3实现mysql连接和数据框的形成(实例代码)
Jan 17 Python
Python3创建Django项目的几种方法(3种)
Jun 03 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 Python
python中spy++的使用超详细教程
Jan 29 Python
python包的导入方式总结
Mar 02 Python
Python使用MapReduce进行简单的销售统计
Apr 22 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
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
常用js脚本
2006/12/03 Javascript
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
Python并行分布式框架Celery详解
2018/10/15 Python
Python Cookie 读取和保存方法
2018/12/28 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
python如何实现单链表的反转
2020/02/10 Python
阿里旅行:飞猪
2017/01/05 全球购物
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
数学系毕业生求职信
2014/05/29 职场文书
英语教研活动总结
2014/07/02 职场文书
诉讼授权委托书
2014/10/15 职场文书
单独二胎证明
2015/06/24 职场文书
学生病假条怎么写
2015/08/17 职场文书
Java 异步任务计算FutureTask
2022/04/28 Java/Android
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js