wxpython分割窗口_wxPython实现分隔窗口
本文实例为大家分享了wxPython分隔窗口的具体代码,供大家参考,具体内容如下
1、分割窗口
分隔窗口(wx.SplitterWindow)就是将窗口分成两部分,即左右或上下两部分,如下图所示窗口,整体上分为左右两个窗口,右窗口又分为上下两窗口,两个窗口之间的分隔线是可以拖动的,称为“窗框”(sash)。
wx.SplitterWindow中一个常用的方法有:
SplitVertically(window1, window2, sashPosition=0)。设置左右布局的分隔窗口,window1为左窗口,window2为右窗口,sashPosition是窗口的位置。
SplitHorizontally(window1, window2, sashPosition=0)。设置上下布局的分隔窗口,window1为上窗口,window2为下窗口,sashPosition是窗口的位置。
SetMinimumPaneSize(paneSize)。设置最小窗口尺寸,如果是左右布局是指左窗口的最小尺寸,如果是上下布局是指上窗口的最小尺寸。如果没有设置则默认为0。
如下图为一个分割窗口,采用的是左右分割,左右两边各放一个面板。左边面板设置一个垂直box管理器,并添加上一个ListBox控件;然后给控件绑上事件处理,获取事件内容并在右侧的StaticText上显示出来。
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分割窗口_wxPython实现分隔窗口相关推荐
- wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)
如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...
- wxpython 调用子窗口_wxpython简介
Python Python是一种成功的脚本语言,它最初是由Guido van Rossum开发的.它于1991年首次发布.Python的灵感来自于ABC和Haskell编程语言.Python是一种 ...
- 使用CSplitterWnd分隔窗口,左视图控制,右视图显示
往往有这种需求:需要显示的视图为ClistView,但这个View的显示数据是有条件的,需要根据用户的输入来显示,如查询历史记录所需的条件.这时有3种方案: 1. 使用CFormView/Dialog ...
- wxpython使用简介_wxpython简介
Python Python是一种成功的脚本语言,它最初是由Guido van Rossum开发的.它于1991年首次发布.Python的灵感来自于ABC和Haskell编程语言.Python是一种 ...
- wxpython选择框_wxpython 对话框
. 消息对话框(wx.MessageDialog) 消息对话框 与用户通信最基本的机制是wx.MessageDialog,它是一个简单的提示框. wx.MessageDialog可用作一个简单的OK框 ...
- python tkinter设置窗口大小_Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例...
我就废话不多说了.大家直接看代码吧! #!/usr/bin/env python #coding=utf-8 ''' 窗口屏幕居中,设置窗口最大,最小尺寸... 版权所有 2014 yao_yu (h ...
- WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口
原文:WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/powertoolsteam/ar ...
- qt获取窗口的右上角位置_如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置...
用Qt Creator 设计程序时,最方便的就是ui设计器,可以很容易的得到想要的布局. 但是这样自动布局带来的后果是很难知道窗口中某一部件在主窗口中的相对位置. 在处理子窗口鼠标事件时变的很麻烦.主 ...
- 通过类名和窗口名查找指定窗口
通过类名和窗口名查找指定窗口 BOOL CALLBACK MyEnumProc(HWND hwnd, LPARAM lParam); class CFindHWND {public:CFindHWND ...
最新文章
- 省选专练(学习)可持久化Trie树(BZOJ3261)
- 一个简单RPC框架是怎样炼成的(II)——制定RPC消息
- Python入门学习之异常处理机制
- boost::describe模块实现连载功能的测试程序
- B+Tree索引为什么可以支持千万级别数据量的查找——讲讲mysql索引的底层数据结构
- ECCV 2020 论文大盘点-人体形状与姿态估计篇
- AcWing 4241. 货物运输
- 优秀ui设计网站分享整理
- Oracle新增字段后,写入数据是提示ORA-00917:XXX 标识符无效
- 怎么修改照片大小?一键快速修改图片宽高尺寸的方法
- ChatGPT时代,推荐几个宝藏公众号!
- Microsoft.Office.Interop.Word引用- 无法嵌入互操作类型
- C语言——常量,变量
- 262. Trips and Users
- 网路设备的端口镜像技术
- 手把手教你做音乐播放器(七)播放音乐(上)
- android安卓实现圆形头像效果(使用第三方开源库)
- 移动互联网不得不看的5个大坑
- 【算法】三色小球,相邻颜色不同,排列方案(DP)
- 引领网页设计潮流的优秀网页作品赏析《第二季》
热门文章
- error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. 的解决方法
- error RC1015: cannot open include file 'afxres.h'. 的解决办法
- python什么模块动态调用链接库_Python调用C/C++动态链接库的方法详解
- 【对接】《前后端对接联调数据、调试接口过程乌龙大合集》
- 修改tomcat7默认首页,将tomcat7默认目录指向自己的项目目录
- 在CentOS 6.9 x86_64的nginx 1.12.2上开启ngx_http_empty_gif_module模块实录
- ATS名词术语(待续)
- linux kernel list_head
- 修改ceph-disk源码,增加指定ceph.conf部署osd的功能
- 火焰图(Flame Graphs)的安装和基本用法