我有一个只有一个孩子的wx.Frame。设置孩子的wx.Sizer时,我可以使用wx.SHAPED标志,该标志使孩子的长宽比保持锁定状态。但是,框架的宽高比仍然具有完全的自由度,并且在孩子不使用的区域中将留有空白。

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

最佳答案

大小调整器无法应用于顶级窗口(以定义窗口本身的属性而不是其内容),因此不幸的是,没有“真正”的方法来锁定宽高比。最好的选择是捕获窗口的OnSize事件,获取用户希望窗口的大小(存储在wxSizeEvent中),根据宽高比计算新的宽度和高度,然后立即使用新尺寸。

该技术的缺点是在调整大小时会出现视觉伪像(操作系统将首先根据用户拖动窗口的方式绘制窗口,但在您调用SetSize后立即重新绘制窗口,从而导致闪烁效果),所以它并不是一个很好的选择。解决方案,但是,由于您不能将顶级窗口锁定为宽高比(并且根本不需要使用SetSize调整大小),因此必须确定闪烁是否值得。

关于wxpython - wxwidgets/wxPython:调整wxFrame的大小,同时保持宽高比,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1291991/

10-13 07:05