gpt4 book ai didi

qt - 调整主窗口大小时强制使用纵横比

转载 作者:行者123 更新时间:2023-12-04 00:20:35 30 4
gpt4 key购买 nike

我知道在 Qt4 中,没有一个标志可以设置为让鼠标驱动的窗口大小调整保持一定的纵横比(比如 1:1)。有没有办法在“resizeEvent(QResizeEvent * event)”中强制窗口的新大小?事件的参数似乎不支持更改或给用户注入(inject)新大小的机会。

我的目标:某个窗口的 GUI/鼠标调整大小将保持其当前的纵横比,无论您从哪里调整它的大小(边、顶部、底部、角)。

最佳答案

引用线程中的消息referenced by @blueskin :

This is surprisingly difficult to do. Most of the window systems do not allow the application to set constraints on the window other than the max and min sizes and that it can be fixed size.



尝试此操作的最常见方法是从 resize 事件中调用 resize。这通常会导致递归问题或看起来很奇怪,因为小部件以用户未请求的方式调整大小。

由于大多数窗口系统不允许适本地调整主窗口的大小,因此最好的解决方案通常是约束子窗口小部件而不是父窗口小部件。一种方法是使用 libqxt 提供的类。

libqxt支持通过其 QxtLetterBoxWidget 将子小部件保持在特定纵横比。 . @blueskin 的 answer提供了一种很好的尝试来做最初要求的事情。

如果您有兴趣,我建议您阅读 source对于 resizeWidget()函数并观察它被调用的地方。作为背景,libqxt 使用 pimpl成语和 qxt_d()获取私有(private)成员。

关于qt - 调整主窗口大小时强制使用纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7259847/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com