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

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.dtcms.com/a/267022.html

相关文章:

  • 黑马python(二十五)
  • hello判断
  • 斜线投影几何分割公式 h = rx·ry/(rx+ry) 的推导方法
  • 【github】想fork的项目变为私有副本
  • boost--io_service/io_context
  • FFmpeg 升级指北
  • 【网络与系统安全】强制访问控制——Biba模型
  • AI生成式软件工程正处在从“辅助编程”到“AI原生开发”的范式转移
  • 使用坚果云扩容Zotero同步空间的简单快捷方法
  • Vue3-组件化-Vue核心思想之一
  • Python 中的余数运算及数论中的同余定理
  • 五层协议介绍
  • 指针篇(7)- 指针运算笔试题(阿里巴巴)
  • CSS——圆形头像外嵌光圈
  • springsecurity02
  • js中的FileReader对象
  • ESP32CAM通过ESPHome接入HomeAssistant(含无线刷固件等)
  • Python-GUI-wxPython-控件
  • 语音大模型速览(一)F5-TTS
  • 《汇编语言:基于X86处理器》第6章 复习题和练习,编程练习
  • Selenium 安装使用教程
  • Python 量化交易安装使用教程
  • 深度学习3(向量化编程+ python中实现逻辑回归)
  • 遗传算法的原理与实现示例
  • XION:玩转您的第一个智能合约
  • Seq2seq+Attention 机器翻译
  • Go中使用国家新闻出版署实名认证
  • [C++] # 深入理解C++继承:从原理到实现
  • 通过网页调用身份证阅读器http websocket方法-华视电子————仙盟创梦IDE
  • 结构型智能科技的关键可行性——信息型智能向结构型智能的转换(提纲)