wxPython各个布局的简单案例
一、绝对布局
panel = wx.Panel(self.frame)panel1 = wx.Panel(panel,pos=(0,0), size=(250, wx.EXPAND)) #设置宽度为250,高度撑满;并且起点为之为(0,0)
panel1.SetBackgroundColour("yellow")
panel2 = wx.Panel(panel,pos=(255,0), size=(wx.EXPAND, wx.EXPAND)) #设置宽度和高度都撑满
panel2.SetBackgroundColour("green")
运行结果如下(其他部分代码省略,只给出了主题部分pannel的布局代码):
二、使用Sizer来进行布局
Sizer布局包含以下几类布局管理器:
参考地址:
https://docs.wxwidgets.org/stable/classwx_sizer.html
http://xoomer.virgilio.it/infinity77/wxPython/Widgets/wx.Sizer.html
BoxSizer,可设置水平或垂直布局,当控件超出窗体后不会自动换行:
def createPanel3(self):# 创建面板panel = wx.Panel(self.frame)vbox = wx.BoxSizer(wx.VERTICAL) #设置水平方向布局but1 = wx.Button(panel,wx.ID_ANY,"button1")but2 = wx.Button(panel, wx.ID_ANY, "button2")but3 = wx.Button(panel, wx.ID_ANY, "button3")but4 = wx.Button(panel, wx.ID_ANY, "button4")but5 = wx.Button(panel, wx.ID_ANY, "button5")but6 = wx.Button(panel, wx.ID_ANY, "button6")but7 = wx.Button(panel, wx.ID_ANY, "button7")but8 = wx.Button(panel, wx.ID_ANY, "button8")but9 = wx.Button(panel, wx.ID_ANY, "button9")but10 = wx.Button(panel, wx.ID_ANY, "button10")vbox.Add(but1)vbox.Add(but2,flag=wx.ALIGN_CENTER) #设置相对于窗口居中对齐vbox.Add(but3)vbox.Add(but4)vbox.Add(but5)vbox.Add(but6)vbox.Add(but7)vbox.Add(but8)vbox.Add(but9)vbox.Add(but10)panel.SetSizer(vbox)
运行结果:
StaticBoxSizer,在BoxSizer外面加了一个静态的边框以及标签,他可以独立的存在也可以放到其他布局管理器中进行嵌套:
panel = wx.Panel(self.frame)vbox = wx.BoxSizer(wx.VERTICAL)Svbox = wx.StaticBoxSizer(wx.VERTICAL,panel,"StaticBoxSizer布局") # 设置水平方向布局vbox.Add(Svbox) #将StaticBoxSizer嵌套到BoxSizer中but1 = wx.Button(panel, wx.ID_ANY, "button1")but2 = wx.Button(panel, wx.ID_ANY, "button2")but3 = wx.Button(panel, wx.ID_ANY, "button3")but4 = wx.Button(panel, wx.ID_ANY, "button4")Svbox.Add(but1)Svbox.Add(but2) # 设置相对于窗口居中对齐Svbox.Add(but3)Svbox.Add(but4)panel.SetSizer(vbox)
运行结果:
FlexGridSizer,网格布局,特点是可以设置网格之间的显示比例:
panel = wx.Panel(self.frame)fgs = wx.FlexGridSizer(1, 2, 0, 5) #设置为1行,2列,列间距为5panel1 = wx.Panel(panel, size=(0, wx.EXPAND))panel1.SetBackgroundColour("yellow")panel2 = wx.Panel(panel, size=(0, wx.EXPAND))panel2.SetBackgroundColour("green")fgs.Add(panel1, 0, wx.EXPAND)fgs.Add(panel2, 0, wx.EXPAND)fgs.AddGrowableCol(0, 1) #指定第一列占1/3的宽度fgs.AddGrowableCol(1, 2) #指定第二列占2/3的宽度panel.SetSizer(fgs)
运行结果:
wxPython各个布局的简单案例相关推荐
- 响应式布局的简单案例演示
这篇文章是一个响应式布局的案例演示 效果:最初是4部分都在一行显示,当满足最大宽度为700px时,只有两部分在一行显示,当最大宽度为360时,一行只显示一部分,代码如下 : 1. 结构代码 <d ...
- 你不知道的 CSS 文档流技巧,让布局更简单
看文章之前,先来看两个例子.这是我们在项目中最常见的项目布局方式. 案例一:多个容器按照相同间距水平排列. 案例二:常见的菜单导航 看到这两个案例时,你可以先短暂的想想平时都是如何实现的,很多同学的答 ...
- java 向nodejs 发送请求简单案例
java 向nodejs 发送请求简单案例 最近在做nodejs的东西,一直不明白java如何与nodejs建立连接,下面写了一个简单demo: nodejs端: var http = requir ...
- ViewPager 实现页面左右滑动的简单案例1
ViewPager 实现页面左右滑动的简单案例 主要Activity: <RelativeLayoutxmlns:android="http://schemas.android.com ...
- BaseAdapter的一个简单案例
BaseAdapter的一个简单案例 主Activity import android.os.Bundle; import android.app.Activity; import android.v ...
- Redis简单案例(二) 网站最近的访问用户
原文:Redis简单案例(二) 网站最近的访问用户 我们有时会在网站中看到最后的访问用户.最近的活跃用户等等诸如此类的一些信息.本文就以最后的访问用户为例, 用Redis来实现这个小功能.在这之前,我 ...
- android时间轴左右交叉布局,快速简单的定制一个时间轴布局(LinearLayout)
github: 先上图: 很多情况下,我们都会遇到需要类似于时间轴的一个布局,网上也有很多,但是很多情况下我们其实并不需要那么多库,毕竟64k限制就在那,不管我们用还是不用,它依然在那... 而且更多 ...
- jQuery ajax简单案例-验证用户名是否可用
jQuery ajax简单案例-验证用户名是否可用 HTML <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- Android复习12【广播接收者-BroadcastReceiver(简单案例-发送广播、静态注册、动态注册、本地广播、代码示例(别处登陆踢用户下线)、常用系统广播总结、音乐播放器)】
2020-04-28[11周-周二] 音乐播放器Android代码下载:https://wws.lanzous.com/ifqzihaxvij 目 录 简单案例-发送广播 2)动态注册实例(监听网 ...
最新文章
- Tomcat5.5x+jndi配置
- AsyncTask工作机制简介
- sqlite创建表联合主键的sql写法、执行sql文件、不支持右连接、获取年份、case when 的使用
- linux 信号处理实验,linux下信号处理
- 初识大数据(三. Hadoop与MPP数据仓库)
- 【资源下载】K8S部署InfluxDB1.8.4完整步骤及部署清单文件下载
- AbstractQueuedSynchronizer 源码分析
- Codeforces Round #323 (Div. 1) B. Once Again... 暴力
- Java压缩技术(二) ZIP压缩——Java原生实现
- C艹 指针和const的关系和注意事项(非常有意思)
- LeetCode--35. 搜索插入位置(遍历,二分法)
- ReferenceError: regeneratorRuntime is not defined解决方法
- 厌倦 VMware,试试更轻量级的虚拟机!
- Kafka ACL使用实战
- SpringAop实现原理
- 小众但口碑好的便签软件
- 计算机网络知识点总结——第三章数据链路层
- java文件乱码_java文件读取出现乱码解决方法
- 中科大计算机招非全日制,中国科技大学有非全日制研究生招生吗?
- 创龙TI TMS320C6678 DSP + Xilinx Kintex-7 FPGA的温度传感器、B2B连接器