时间:2021-05-22
本文实例为大家分享了wxPython分隔窗口的具体代码,供大家参考,具体内容如下
1、分割窗口
分隔窗口(wx.SplitterWindow)就是将窗口分成两部分,即左右或上下两部分,如下图所示窗口,整体上分为左右两个窗口,右窗口又分为上下两窗口,两个窗口之间的分隔线是可以拖动的,称为“窗框”(sash)。
wx.SplitterWindow中一个常用的方法有:
如下图为一个分割窗口,采用的是左右分割,左右两边各放一个面板。左边面板设置一个垂直box管理器,并添加上一个ListBox控件;然后给控件绑上事件处理,获取事件内容并在右侧的StaticText上显示出来。
2、代码实现
上图的代码实现如下所示:
import wx # 自定义窗口类MyFrameclass 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、运行结果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
有个小项目,碰到需要批量建立输入框的需求,本文利用WxPython建立批量录入框窗口研究了一下WxPython,实现了这个功能。#coding=utf-8"""
本文实例为大家分享了wxPython实现窗口用图片做背景的具体代码,供大家参考,具体内容如下效果图:实现代码:#!/usr/bin/envpython#-*-e
最近做个软件,用PyQT写的,在实现菜单栏点击弹出新窗口的时候严重被卡壳,发现用WxPython的思想和方式来做完全无法实现。PyQT的中文资料实在是太少了。看
wxPython树控件介绍树(tree)是一种通过层次结构展示信息的控件,如下图所示是树控件示例,左窗口中是树控件,在wxPython中树控件类是wx.Tree
本文实例讲述了wxPython窗口的继承机制,分享给大家供大家参考。具体分析如下:示例代码如下:importwxclassMyApp(wx.App):defOn