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 相关文章推荐
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
Python闭包函数定义与用法分析
Jul 20 Python
python实现图片转字符小工具
Apr 30 Python
python覆盖写入,追加写入的实例
Jun 26 Python
Python ORM编程基础示例
Feb 02 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
用python写一个带有gui界面的密码生成器
Nov 06 Python
如何用用Python将地址标记在地图上
Feb 07 Python
python使用PySimpleGUI设置进度条及控件使用
Jun 10 Python
基于Python实现nc批量转tif格式
Aug 14 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
ThinkPHP标签制作教程
2014/07/10 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
python从Oracle读取数据生成图表
2020/10/14 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
携程英文网站:Trip.com
2017/02/07 全球购物
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
小组名称和口号
2014/06/09 职场文书
企业法人代表证明书
2014/09/27 职场文书
小学班主任自我评价
2015/03/11 职场文书
消防安全月活动总结
2015/05/08 职场文书
学习经验交流会策划书
2015/11/02 职场文书
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
正则表达式拆分url实例代码
2022/02/24 Java/Android