一、绝对布局

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各个布局的简单案例相关推荐

  1. 响应式布局的简单案例演示

    这篇文章是一个响应式布局的案例演示 效果:最初是4部分都在一行显示,当满足最大宽度为700px时,只有两部分在一行显示,当最大宽度为360时,一行只显示一部分,代码如下 : 1. 结构代码 <d ...

  2. 你不知道的 CSS 文档流技巧,让布局更简单

    看文章之前,先来看两个例子.这是我们在项目中最常见的项目布局方式. 案例一:多个容器按照相同间距水平排列. 案例二:常见的菜单导航 看到这两个案例时,你可以先短暂的想想平时都是如何实现的,很多同学的答 ...

  3. java 向nodejs 发送请求简单案例

    java  向nodejs 发送请求简单案例 最近在做nodejs的东西,一直不明白java如何与nodejs建立连接,下面写了一个简单demo: nodejs端: var http = requir ...

  4. ViewPager 实现页面左右滑动的简单案例1

    ViewPager 实现页面左右滑动的简单案例 主要Activity: <RelativeLayoutxmlns:android="http://schemas.android.com ...

  5. BaseAdapter的一个简单案例

    BaseAdapter的一个简单案例 主Activity import android.os.Bundle; import android.app.Activity; import android.v ...

  6. Redis简单案例(二) 网站最近的访问用户

    原文:Redis简单案例(二) 网站最近的访问用户 我们有时会在网站中看到最后的访问用户.最近的活跃用户等等诸如此类的一些信息.本文就以最后的访问用户为例, 用Redis来实现这个小功能.在这之前,我 ...

  7. android时间轴左右交叉布局,快速简单的定制一个时间轴布局(LinearLayout)

    github: 先上图: 很多情况下,我们都会遇到需要类似于时间轴的一个布局,网上也有很多,但是很多情况下我们其实并不需要那么多库,毕竟64k限制就在那,不管我们用还是不用,它依然在那... 而且更多 ...

  8. jQuery ajax简单案例-验证用户名是否可用

    jQuery ajax简单案例-验证用户名是否可用 HTML <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  9. Android复习12【广播接收者-BroadcastReceiver(简单案例-发送广播、静态注册、动态注册、本地广播、代码示例(别处登陆踢用户下线)、常用系统广播总结、音乐播放器)】

    2020-04-28[11周-周二] 音乐播放器Android代码下载:https://wws.lanzous.com/ifqzihaxvij 目   录 简单案例-发送广播 2)动态注册实例(监听网 ...

最新文章

  1. Tomcat5.5x+jndi配置
  2. AsyncTask工作机制简介
  3. sqlite创建表联合主键的sql写法、执行sql文件、不支持右连接、获取年份、case when 的使用
  4. linux 信号处理实验,linux下信号处理
  5. 初识大数据(三. Hadoop与MPP数据仓库)
  6. 【资源下载】K8S部署InfluxDB1.8.4完整步骤及部署清单文件下载
  7. AbstractQueuedSynchronizer 源码分析
  8. Codeforces Round #323 (Div. 1) B. Once Again... 暴力
  9. Java压缩技术(二) ZIP压缩——Java原生实现
  10. C艹 指针和const的关系和注意事项(非常有意思)
  11. LeetCode--35. 搜索插入位置(遍历,二分法)
  12. ReferenceError: regeneratorRuntime is not defined解决方法
  13. 厌倦 VMware,试试更轻量级的虚拟机!
  14. Kafka ACL使用实战
  15. SpringAop实现原理
  16. 小众但口碑好的便签软件
  17. 计算机网络知识点总结——第三章数据链路层
  18. java文件乱码_java文件读取出现乱码解决方法
  19. 中科大计算机招非全日制,中国科技大学有非全日制研究生招生吗?
  20. 创龙TI TMS320C6678 DSP + Xilinx Kintex-7 FPGA的温度传感器、B2B连接器

热门文章

  1. 【python图像处理】两幅图像的合成一幅图像(blending two images)
  2. 【OpenCV3】OpenCV3.2.0在VS2013环境下Cmake编译与快速配置
  3. uva 11400 - Lighting System Design(动态规划 最长上升子序列问题变型)
  4. Django1.6踩到的坑
  5. php 函数中静态变量的问题
  6. 安装和配置SQL Server 2016 With SP1
  7. java 线程的几种状态
  8. 3.5 mysql备份与恢复
  9. 有关数据结构基础知识(数据结构 严蔚敏版)
  10. 有趣又好玩的glm库