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 相关文章推荐
下载给定网页上图片的方法
Feb 18 Python
常见的在Python中实现单例模式的三种方法
Apr 08 Python
使用Python的urllib2模块处理url和图片的技巧两则
Feb 18 Python
python win32 简单操作方法
May 25 Python
Pandas标记删除重复记录的方法
Apr 08 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 Python
Python读取JSON数据操作实例解析
May 18 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
Python不支持 i ++ 语法的原因解析
Jul 22 Python
关于Python中进度条的六个实用技巧分享
Apr 05 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
python的dataframe和matrix的互换方法
2018/04/11 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
python检索特定内容的文本文件实例
2018/06/05 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
浅谈python3中input输入的使用
2019/08/02 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
详解python UDP 编程
2020/08/24 Python
详解rem 适配布局
2018/10/31 HTML / CSS
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
优秀学生事迹材料
2014/02/08 职场文书
布达拉宫的导游词
2015/02/02 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
小程序实现筛子抽奖
2021/05/26 Javascript