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 相关文章推荐
node.js获取参数的常用方法(总结)
May 29 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
Django中cookie的基本使用方法示例
Feb 03 Python
python实现百度语音识别api
Apr 10 Python
解决安装python库时windows error5 报错的问题
Oct 21 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
Python collections模块使用方法详解
Aug 28 Python
python实现智能语音天气预报
Dec 02 Python
python的Jenkins接口调用方式
May 12 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
Python 解析xml文件的示例
Sep 29 Python
Python中的套接字编程是什么?
Jun 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
php array_slice函数的使用以及参数详解
2008/08/30 PHP
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
php代码书写习惯优化小结
2013/06/20 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
Jquery的each里用return true或false代替break或continue
2014/05/21 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
python3实现微型的web服务器
2019/09/03 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
keras topN显示,自编写代码案例
2020/07/03 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
自我评价200字分享
2013/12/17 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
升学宴学生致辞
2015/07/27 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang