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中的sort()方法使用基础教程
Jan 08 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
Python 字符串与二进制串的相互转换示例
Jul 23 Python
设置python3为默认python的方法
Oct 31 Python
Python命名空间的本质和加载顺序
Dec 17 Python
Python2与Python3的区别实例分析
Apr 11 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
Python实现密钥密码(加解密)实例详解
Apr 26 Python
python同时遍历两个list用法说明
May 02 Python
Python检测端口IP字符串是否合法
Jun 05 Python
keras实现VGG16方式(预测一张图片)
Jul 07 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 在线打包_支持子目录
2008/06/28 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
python开发中module模块用法实例分析
2015/11/12 Python
python分割列表(list)的方法示例
2017/05/07 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
python实现车牌识别的示例代码
2019/08/05 Python
python获取Linux发行版名称
2019/08/30 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
水污染治理专业毕业生推荐信
2013/11/14 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python
Java基础之this关键字的使用
2021/06/30 Java/Android
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis