wxPython窗体拆分布局基础组件


Posted in Python onNovember 19, 2019

本文实例为大家分享了wxPython窗体拆分布局的具体代码,供大家参考,具体内容如下

BoxSizer 布局管理

参数说明:

orient:wx.VERTICAL(垂直方向) 或 wx.HORIZONTAL(水平方向)

proportion:控件在方向上所占空间的相对于其他组件比例,
porportion=0,表示保持本身大小;
porportion=1,表示在水平方向上占三分之一的空间;
porportion=2,表示在水平方向上占三分之二的空间。

flag: wx.TOP | wx.BOTTOM | wx.LEFT | wx.RIGHT | wx.ALL |
wx.EXPAND(自动填充)

#-*- coding:utf-8 -*-
import wx
from wx._core import BoxSizer, GridSizer
from wx.lib.splitter import MultiSplitterWindow, MultiSplitterEvent
from wx.lib.agw.fourwaysplitter import FourWaySplitter
 
 
class ProxyFrame(wx.ScrolledWindow):
 def __init__(self, parent):
  wx.ScrolledWindow.__init__(self, parent)
  self.createWidget()
 
 def createWidget(self):
  self.proxy_split_mult = wx.SplitterWindow(self, style=wx.SP_LIVE_UPDATE, size=(800, 450))
  self.proxy_split_mult.SetMinimumPaneSize(10) #最小面板大小
 
  self.proxy_split_top = wx.SplitterWindow(self.proxy_split_mult) #上结构
  self.proxy_split_bottom = wx.SplitterWindow(self.proxy_split_mult) #下结构
 
  ########## 结构上左右 ##########
  self.proxy_scrol_leftTop = wx.ScrolledWindow(self.proxy_split_top)
  self.proxy_scrol_leftTop.SetBackgroundColour(wx.WHITE)
  self.proxy_scrol_leftTop.SetScrollbars(10, 10, 400, 300)
  self.proxy_scrol_leftTop.SetAutoLayout(1)
 
  self.proxy_scrol_rightTop = wx.ScrolledWindow(self.proxy_split_top)
  self.proxy_scrol_rightTop.SetBackgroundColour(wx.BLACK)
 
  self.proxy_split_top.SetMinimumPaneSize(10) #最小面板大小
  self.proxy_split_top.SplitVertically(self.proxy_scrol_leftTop, self.proxy_scrol_rightTop) #分割面板
  self.proxy_split_top.SetSashGravity(0.5)
  ########## 结构上左右 end ##########
 
  ########## 结构下左右 ##########
  self.proxy_scrol_leftBottom = wx.ScrolledWindow(self.proxy_split_bottom)
  self.proxy_scrol_leftBottom.SetBackgroundColour(wx.WHITE)
  self.proxy_scrol_rightBottom = wx.ScrolledWindow(self.proxy_split_bottom)
  self.proxy_scrol_rightBottom.SetBackgroundColour(wx.BLACK)
 
  self.proxy_split_bottom.SetMinimumPaneSize(10) #最小面板大小
  self.proxy_split_bottom.SplitVertically(self.proxy_scrol_leftBottom, self.proxy_scrol_rightBottom) #分割面板
  self.proxy_split_bottom.SetSashGravity(0.5)
  ########## 结构下左右 end ##########
 
  self.proxy_split_mult.SplitHorizontally(self.proxy_split_top, self.proxy_split_bottom) #分割面板
  self.proxy_split_mult.SetSashGravity(0.5)
 
  self.SetScrollbars(10, 10, 400, 300)
  sizer = wx.BoxSizer(wx.HORIZONTAL)
  sizer.Add(self.proxy_split_mult, 1, flag=wx.EXPAND) #自动缩放
  self.SetSizer(sizer)
 
 
class MainFrame(wx.Frame):
 def __init__(self):
  wx.Frame.__init__(self, None, -1, "My Frame", size=(800, 450))
  self.createWidget()
 
 def createWidget(self):
  ########## 窗体底部状态栏 ##########
  self.statusbar = self.CreateStatusBar(2, wx.ST_SIZEGRIP)
  self.statusbar.SetStatusText("", 0)
  self.statusbar.SetStatusText("", 1)
 
  ########## HTTP代理书签页 ##########
  self.createProxyWidget()
 
 
 #HTTP代理书签页
 def createProxyWidget(self):
  self.proxy_nb = wx.Notebook(self, -1, name="proxy_nb")
  self.proxyFrame = ProxyFrame(self.proxy_nb)
  self.proxy_nb.AddPage(self.proxyFrame, u"HTTP代理")
 
 
def main():
 #设置了主窗口的初始大小960x540 800x450 640x360
 root = wx.App()
 frame = MainFrame()
 frame.Show(True)
 root.MainLoop()
 
 
if __name__ == "__main__":
 main()

wxPython窗体拆分布局基础组件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
python的Template使用指南
Sep 11 Python
用Python写一个无界面的2048小游戏
May 24 Python
Python3中简单的文件操作及两个简单小实例分享
Jun 18 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
图文详解python安装Scrapy框架步骤
May 20 Python
使用遗传算法求二元函数的最小值
Feb 11 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
如何基于windows实现python定时爬虫
May 01 Python
python使用布隆过滤器的实现示例
Aug 20 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
Python解压 rar、zip、tar文件的方法
Nov 19 #Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
Nov 19 #Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 #Python
python flask搭建web应用教程
Nov 19 #Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 #Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 #Python
python tornado修改log输出方式
Nov 18 #Python
You might like
php中文字母数字验证码实现代码
2008/04/25 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
jquery层次选择器的介绍
2019/01/18 jQuery
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
详解Python 函数如何重载?
2019/04/23 Python
python处理“
2019/06/10 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
Laravel中Kafka的使用详解
2021/03/24 PHP
计算机专业推荐信范文
2013/11/20 职场文书
运动会广播稿100字
2014/01/11 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
滞留工资返还协议书
2014/10/19 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
Redis可视化客户端小结
2021/06/10 Redis
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android