当前位置: 首页 > ops >正文

Python-GUI-wxPython-布局

1 需求


2 接口

  • wx.Sizer().Add()

 

 proportion(比例)参数是一个整数,用于指定当父布局管理器的空间有剩余时,被添加的对象(这里是 general_sizer 及其包含的组件)在布局方向上可以占据的额外空间的比例。

  • 当 proportion 为 0 时,表示无论父布局管理器剩余多少空间,该对象都不会额外扩展去占据这些剩余空间,会保持其原本的最小尺寸。
  • 如果设置为大于 0 的值,比如 1 ,在有多个添加对象且都设置了非零 proportion 值的情况下,剩余空间会按照这些 proportion 值的比例分配给对应的对象。例如,有两个对象,proportion 分别设置为 1 和 2,那么它们会按照 1:2 的比例去分配剩余空间。

间距相关

  • wx.ALL:在对象的上、下、左、右四个方向都应用由第四个参数指定的间距值。例如main_sizer.Add(some_widget, 0, wx.ALL, 5),表示some_widget四周都有 5 像素的间距。
  • wx.TOP:只在对象的顶部应用由第四个参数指定的间距值。
  • wx.BOTTOM:只在对象的底部应用由第四个参数指定的间距值。
  • wx.LEFT:只在对象的左侧应用由第四个参数指定的间距值。
  • wx.RIGHT:只在对象的右侧应用由第四个参数指定的间距值。
  • wx.HORIZONTAL:在对象的左侧和右侧应用由第四个参数指定的间距值,用于控制水平方向的间距 。
  • wx.VERTICAL:在对象的顶部和底部应用由第四个参数指定的间距值,用于控制垂直方向的间距 。

对齐方式相关

  • wx.ALIGN_LEFT:将对象在布局空间中靠左对齐。
  • wx.ALIGN_RIGHT:将对象在布局空间中靠右对齐。
  • wx.ALIGN_TOP:将对象在布局空间中靠顶部对齐。
  • wx.ALIGN_BOTTOM:将对象在布局空间中靠底部对齐。
  • wx.ALIGN_CENTER_VERTICAL:将对象在布局空间中垂直居中对齐 。
  • wx.ALIGN_CENTER_HORIZONTAL:将对象在布局空间中水平居中对齐。
  • wx.ALIGN_CENTER:将对象在布局空间中水平和垂直都居中对齐,等价于同时使用wx.ALIGN_CENTER_VERTICALwx.ALIGN_CENTER_HORIZONTAL

伸展相关

  • wx.EXPAND:使对象在布局方向上(水平或垂直,取决于布局管理器的方向)尽可能地伸展,占据所有可用空间。如果布局管理器是水平方向的BoxSizer,那么添加的对象会在水平方向上填满剩余空间;如果是垂直方向的BoxSizer,则在垂直方向上填满剩余空间 。

换行相关

  • wx.SHAPED:告诉布局管理器,子窗口部件具有不规则形状,布局管理器应相应地调整布局。
  • wx.FIXED_MINSIZE:即使窗口大小改变,也强制子窗口部件保持其最小尺寸。
  • wx.GROW:与wx.EXPAND类似,使对象在布局方向上伸展以填充可用空间。

3 布局:wx.BoxSizer

import wxclass MyFrame(wx.Frame):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)self.init_ui()self.Center()self.Maximize()def init_ui(self):panel = wx.Panel(self)sizer = wx.BoxSizer(wx.VERTICAL)button1 = wx.Button(panel, label="Button 1")button2 = wx.Button(panel, label="Button 2")sizer.Add(button1,proportion=1,flag=wx.ALL | wx.EXPAND,border=5)sizer.Add(button2,proportion=1,flag=wx.ALL | wx.EXPAND,border=5)panel.SetSizer(sizer)if __name__ == "__main__":app = wx.App()frame = MyFrame(None, title="wxPython Demo")frame.Show()app.MainLoop()

4 参考资料

http://www.xdnf.cn/news/14831.html

相关文章:

  • python打卡day59@浙大疏锦行
  • 应急响应靶场——web3 ——知攻善防实验室
  • docker运行的一些常用命令
  • 使用alist+RaiDrive+webdav将百度夸克网盘变为本地电脑磁盘方法教程
  • 基于led框架及gpiolib管理的驱动编写
  • git教程-pycharm使用tag打标签
  • Mint密室 · 猫猫狐狐的“特征选择”囚室逃脱
  • Adobe Illustrator设置的颜色和显示的颜色不对应问题
  • 同步(Synchronization)和互斥(Mutual Exclusion)关系
  • OLAP 是什么?一文讲清 OLAP 和 OLTP 的区别
  • 类图+案例+代码详解:软件设计模式----单例模式
  • 分布式光伏监控系统防孤岛保护装置光功率预测
  • 如何选择合适的工业相机快门种类
  • Selenium 安装使用教程
  • Java 中的锁机制详解
  • 服装零售企业跨区域运营难题破解方案
  • Kotlin 安装使用教程
  • SAP SD模块之业务功能剖析
  • CI/CD持续集成与持续部署
  • 开源 vGPU 方案 HAMi: corememory 隔离测试
  • 深度剖析:如何解决Node.js中mysqld_stmt_execute参数错误
  • Java 数据类型与变量
  • Oracle如何使用序列 Oracle序列使用教程
  • OpenCV中DPM(Deformable Part Model)目标检测类cv::dpm::DPMDetector
  • KVM高级功能部署
  • Go应用容器化完全指南:构建最小化安全镜像的终极实践
  • 【MySQL\Oracle\PostgreSQL】迁移到openGauss数据出现的问题解决方案
  • Python入门Day2
  • Python字符与ASCII转换方法
  • Qt 事件