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创建列表并给列表赋初始值的方法
Jul 28 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
python之pandas用法大全
Mar 13 Python
Python列表解析配合if else的方法
Jun 23 Python
Python中三元表达式的几种写法介绍
Mar 04 Python
pyqt5 获取显示器的分辨率的方法
Jun 18 Python
python3.7 使用pymssql往sqlserver插入数据的方法
Jul 08 Python
pytorch索引查找 index_select的例子
Aug 18 Python
使用apiDoc实现python接口文档编写
Nov 19 Python
使用python的turtle绘画滑稽脸实例
Nov 21 Python
Flask使用SQLAlchemy实现持久化数据
Jul 16 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代码
2007/03/08 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
php适配器模式介绍
2012/08/14 PHP
PHP开发注意事项总结
2015/02/04 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
jquery each()源代码
2011/02/14 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
DOM事件探秘篇
2017/02/15 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
python 正则式使用心得
2009/05/07 Python
python实现的一个p2p文件传输实例
2014/06/04 Python
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
Python pymsql模块的使用
2020/09/07 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
室内设计专业个人的自我评价
2013/10/19 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
如何正确理解python装饰器
2021/06/15 Python
防止web项目中的SQL注入
2021/12/06 MySQL