如何锁定调整应用程序窗口大小的高宽比?
For Example aspect-ratio: 16/9.发布于 2022-10-16 18:42:35
如果您的意思是希望防止用户将窗口调整为固定的16:9比例(例如,如果用户拖的窗口更短,它也会自动变薄),我不确定通过Qt是否可能这样做,因为窗口调整是由OS的窗口管理器处理的,而不是由Qt库本身处理的。Qt只在调整尺寸步骤已经发生之后才会得到通知。可能会有一些较低级别的API将窗口的纵横比限制为常数,但这将是操作系统特有的,而不是Qt的一部分。
一种方法是使窗口固定大小(通过调用QWidget::setFixedSize()),这样用户就不能通过拖动边缘或角落来调整窗口的大小,然后提供一些其他调整大小的机制(例如,“较大”和“较小”的按钮),用户可以激活这些机制来调整窗口的大小。
在Qt级别上可以做的另一个可能的工作是通过计算新窗口大小内最大的16:9子矩形来对resizeEvent()做出反应,并将内容布局成适合于该矩形而不是填充整个窗口。这将导致在窗口的顶部和底部(或左和右)边缘出现空白栏,而此时窗口的纵横比不是16:9,但不管用户如何调整窗口大小,至少您的内容仍然可以有所需的纵横比。
https://stackoverflow.com/questions/74089619
复制相似问题