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 相关文章推荐
详解Django框架中的视图级缓存
Jul 23 Python
python杀死一个线程的方法
Sep 06 Python
python3设计模式之简单工厂模式
Oct 17 Python
Python时间戳使用和相互转换详解
Dec 11 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
python+Splinter实现12306抢票功能
Sep 25 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
Jan 08 Python
Python实现EXCEL表格的排序功能示例
Jun 25 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 Python
区分python中的进程与线程
Aug 13 Python
python获取命令行参数实例方法讲解
Nov 02 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结束标签的使用细节探讨及联想
2013/03/04 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
js使用ajax读博客rss示例
2014/05/06 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
面试常见的js算法题
2017/03/23 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
Python正则表达式使用经典实例
2016/06/21 Python
彻底理解Python中的yield关键字
2019/04/01 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
python kafka 多线程消费者&手动提交实例
2019/12/21 Python
python文件和文件夹复制函数
2020/02/07 Python
家长会演讲稿范文
2014/01/10 职场文书
报关专员求职信范文
2014/02/22 职场文书
保险公司开门红口号
2014/06/21 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android