如何使用QScrollArea设置QMainWindow的所需大小



我正在做一个项目,在这个项目中我必须显示一个相当大(垂直)的主Widget。在我的GUI的最初版本中,它只是作为QMainWindow的中心Widget添加的,这导致了在小屏幕分辨率下无法访问Widget底部的控件的问题。为了解决这个问题,我在主窗口小部件周围封装了一个QScrollArea,但现在主窗口总是相对较小,即使不必这样做

我需要更改什么才能使主窗口(垂直)大小足够大,可以显示所有内容,除非它对于屏幕分辨率来说太大?此外,我不希望它被拉伸,所以简单地总是使用整个垂直屏幕分辨率是不可行的。理想情况下,大小应该固定为内容所需的大小(不包括滚动区域),并且只在需要的地方更小。

重写sizeHint方法只会导致窗口的小幅度放大,而设置最小高度则会让我回到一开始,有些控件在小分辨率下无法评估。

由于我是QT的新手,我实际上不知道如何在谷歌上搜索解决方案,因为我能找到的大多数解决方案都是关于调整窗口内组件的大小,而不是窗口本身。

默认情况下,QScrollArea不会尝试扩展以适应其内容。为了做到这一点,您需要重新实现QScrollArea的sizeHint(),以返回QScrollArea的子窗口小部件的大小。

在你的问题中,听起来你试图重新实现MainWindow的sizeHint?在顶层窗口上重新实现sizeHint将不会产生任何效果,因为sizeHint是为与布局中的小部件一起使用而设计的。

相关内容

  • 没有找到相关文章

最新更新