wxpython - wx小部件/wxPython : Resizing a wxFrame while keeping aspect ratio

标签 wxpython resize wxwidgets frame aspect-ratio

我有一个只有一个 child 的 wx.Frame。在设置 child 的 wx.Sizer 时,我可以使用 wx.SHAPED 标志,它保持 child 的宽高比锁定。但是,Frame 在纵横比方面仍然具有完全的自由度,并且会在 child 未使用的区域留出空白。

如何在调整大小时锁定 wx.Frame 的纵横比?

最佳答案

Sizers 不能应用于顶级窗口(为了定义窗口本身的属性而不是它们的内容),所以不幸的是没有“真正”的方法来锁定纵横比。最好的办法是捕获窗口的 OnSize 事件,获取用户希望窗口的大小(存储在 wxSizeEvent 中),计算新的宽度和高度,然后立即用新的尺寸调用 SetSize

此技术在调整大小时存在视觉伪影的缺点(操作系统最初会根据用户拖动窗口的方式绘制窗口,但在您调用 SetSize 后立即重新绘制,从而导致闪烁效果)所以这不是一个很好的解决方案,但是由于您无法将顶级窗口锁定为纵横比(并且根本不需要使用 SetSize 调整大小),您必须决定是否闪烁是值得的。

关于wxpython - wx小部件/wxPython : Resizing a wxFrame while keeping aspect ratio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1291991/

相关文章:

c++ - 我必须声明自己的 wxFrame 类吗?

python - wx.App 的目的是仅显示一个框架就足够了

python - 是否有非标准、非本地信息亭样式 GUI 应用程序的首选框架?

c++ - 为什么我调用 'wxGetTranslation' 会导致编译器错误 "ambiguous call to overloaded function"?

php - Yii:有什么方法可以以压缩形式保存图像吗?

javascript - 创建具有自动调整大小的文本区域

c++ - sizers 是处理表单的好方法吗?

performance - wxPython FloatCanvas 事件绑定(bind)

python - wxPython 带面板的框架的最小尺寸

javascript - 如何解决根据窗口宽度/高度自动调整大小的网站中的手机/电话键盘