最近在学习使用wxpython,想通过panel来分出不同的区块来进行单独布局

却发现,当我在panel中嵌套了一个panel,在这个嵌套的panel中使用boxsizer进行布局没有效果

代码如下:

import wx
app = wx.App()
frame = wx.Frame(None,wx.ID_ANY, 'simple.py')
panel = wx.Panel(frame,wx.ID_ANY)
boxsizer = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(boxsizer)
button1 = wx.Button(panel,wx.ID_ANY,'aaaaa')
button2 = wx.Button(panel,wx.ID_ANY,'bbbbb')
boxsizer.Add(button1)
boxsizer.Add(button2)
panel2 = wx.Panel(panel,wx.ID_ANY,style=wx.BORDER_DOUBLE,size = wx.Size(300,300))
panel2.SetBackgroundColour('#00ff00')
boxsizer.Add(panel2)boxsizer2 = wx.BoxSizer(wx.VERTICAL)
panel2.SetSizer(boxsizer)
button3 = wx.Button(panel2,wx.ID_ANY,'ccccc')
button4 = wx.Button(panel2,wx.ID_ANY,'ddddd')
boxsizer2.Add(button3)
boxsizer2.Add(button4)frame.Show()
app.MainLoop()

运行结果:

发现按钮 C 覆盖在了按钮 D的上方,如果布局起作用的话,按钮 D 应该在 B 的下方才对

这说明了wxpython在嵌套panel里的布局是没有效果的

但是自己又希望在这个嵌套的panel里有新的布局,该怎么做呢,我想到的办法是使用绝对布局:

import wx
app = wx.App()
frame = wx.Frame(None,wx.ID_ANY, 'simple.py')
panel = wx.Panel(frame,wx.ID_ANY)
boxsizer = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(boxsizer)
button1 = wx.Button(panel,wx.ID_ANY,'aaaaa')
button2 = wx.Button(panel,wx.ID_ANY,'bbbbb')
boxsizer.Add(button1)
boxsizer.Add(button2)panel2 = wx.Panel(panel,wx.ID_ANY,style=wx.BORDER_DOUBLE,size = wx.Size(300,300))
panel2.SetBackgroundColour('#00ff00')
boxsizer.Add(panel2)
button3 = wx.Button(panel2,wx.ID_ANY,'ccccc')
button4 = wx.Button(panel2,wx.ID_ANY,'ddddd',pos = wx.Point(0,30))frame.Show()
app.MainLoop()

运行结果如下:

这样 D 按钮就在 C的下方了

当然这个方法暂时能解决嵌套布局的一个问题,如果有其他更好的方法也希望能与大家进行交流

wxpython嵌套panel布局的一个问题相关推荐

  1. wxpython界面切换_Python图形界面—wxPython库的布局管理及页面切换

    原标题:Python图形界面-wxPython库的布局管理及页面切换 前言 wxPython是基于Python的跨平台GUI扩展库,对wxWidgets( C++ 编写)封装实现.GUI程序的开发中界 ...

  2. wxpython界面切换_Python图形界面开发—wxPython库的布局管理及页面切换

    前言 wxPython是基于Python的跨平台GUI扩展库,对wxWidgets( C++ 编写)封装实现.GUI程序的开发中界面布局是很重要的一个部分,合理的页面布局能够给予用户良好使用体验.虽然 ...

  3. python图形界面开发库_Python图形界面开发—wxPython库的布局管理及页面切换

    前言 wxPython是基于Python的跨平台GUI扩展库,对wxWidgets( C++ 编写)封装实现.GUI程序的开发中界面布局是很重要的一个部分,合理的页面布局能够给予用户良好使用体验.虽然 ...

  4. 【Android 性能优化】布局渲染优化 ( CPU 渲染优化 | 减少布局的嵌套 | 测量布局绘制时间 | OnFrameMetricsAvailableListener | 布局渲染优化总结 )

    文章目录 一. 减少布局嵌套 二. 布局渲染时间测量 1. FrameMetrics 使用流程 2. FrameMetrics 参数解析 3. FrameMetrics 代码示例 三. 布局渲染优化总 ...

  5. Android studio 在线性布局下嵌套相对布局

    Android studio 新建一个项目,修改XML如下: 项目Activity名称为:MyRelativeLayout <?xml version="1.0" encod ...

  6. 结合HTML5的语义化标签,运用DIV+CSS网页布局技术设计一个个人博客页面

    ** CSS+DIV页面布局 ** 结合HTML5的语义化标签,运用DIV+CSS网页布局技术设计一个个人博客页面.要求: (1)header标签定义页面头部区:nav标签定义导航区:div标签定义中 ...

  7. iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序

    iOS开发UI篇-使用嵌套模型完成的一个简单汽车图标展示程序 一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: 1 //2 // YY ...

  8. bootstrap panel 布局

    panel 1. 效果 2. 基于bootstrap实现 用于页面分专栏展示 1. 效果 成品 2. 基于bootstrap实现 <!DOCTYPE html> <html>& ...

  9. css响应式布局_用 CSS Grid 布局制作一个响应式柱状图

    最新一段时间比较喜欢玩弄图表,出于好奇,我想找出比较好的用 CSS 制作图表的方案.开始学习网上开源图表库,它对我学习新的和不熟悉的前端技术很有帮助,比如这个:CSS Grid. 今天和大家分享我学到 ...

最新文章

  1. 【Android架构师java原理详解】二;反射原理及动态代理模式
  2. 基于mindspore的口罩检测训练与在线推理
  3. 在java继承机制中 父类中的私有_Java中子类能继承父类的私有属性吗?
  4. 在3D场景中显示汉字
  5. 一文理解 pytorch 拟合网络的过程
  6. 《Python核心编程》18.多线程编程(二)
  7. 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
  8. 2020年黑龙江省水稻种植分布数据
  9. 缺失索引自动创建语句
  10. 转义字符 \r \v \f
  11. 记vscode配置踩坑经过
  12. 午芯高科WXP380气压传感器
  13. 华为认证HCIA-Datacom知识点
  14. 计算机科学计算矩阵答案,计算机科学计算答案.doc
  15. STM32输出PWM波形并实现呼吸灯
  16. 口语语汇单词篇(5)
  17. 实体转xml(史上最全面)
  18. SNTP获取时间源统一时间
  19. LC谐振电路跟和LC振荡电路
  20. Kindling the Darkness: A Practical Low-light Image Enhancer

热门文章

  1. 推荐系统-07-lambda架构
  2. zabbix snmp 协议监控 dell iRDAC
  3. POJ-3264-Balanced Lineup-单点更新
  4. 华硕P8B-C/2L及其他
  5. footer固定到底部
  6. 翻译:创建 Windows8 应用 Part I: Hello, world!
  7. linux下安装uuid库
  8. OpenCV—基本矩阵操作与示例
  9. 语音信号的分帧加窗的matlab实现
  10. 从一段代码的汇编看计算机的工作原理