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实现周期性抓取网页内容的方法
Nov 04 Python
python 使用get_argument获取url query参数
Apr 28 Python
儿童学习python的一些小技巧
May 27 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 Python
实例讲解Python3中abs()函数
Feb 19 Python
Python中print函数简单使用总结
Aug 05 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
python3通过qq邮箱发送邮件以及附件
May 20 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
python Tornado框架的使用示例
Oct 19 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下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
PHP实现RTX发送消息提醒的实例代码
2017/01/03 PHP
js form action动态修改方法
2008/11/04 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
详解JavaScript中的this指向问题
2021/02/05 Javascript
Python struct模块解析
2014/06/12 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
python 绘制国旗的示例
2020/09/27 Python
python opencv实现图像配准与比较
2021/02/09 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
个人作风剖析材料
2014/02/02 职场文书
绘画专业自荐信
2014/07/04 职场文书
导游词400字
2015/02/13 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
MySQL系列之六 用户与授权
2021/07/02 MySQL