我正在开发一个项目,我必须显示一个非常大的(垂直)主Widget。 在我的GUI的初始版本中,它被添加为QMainWindow的中央Widget,这导致问题在小屏幕分辨率下,Widget底部的控件无法访问。 为了解决这个问题,我在主Widget周围包裹了一个QScrollArea,但是现在主窗口总是相对较小,即使它没有。
我需要更改什么,以便主窗口(垂直)大小足以显示所有内容,除非它对于屏幕分辨率来说太大了?此外,我不希望它被拉伸,所以只是总是使用整个垂直屏幕分辨率不是一个选项。理想情况下,尺寸应固定为内容所需的尺寸(无滚动区域),并且只在需要时更小。
覆盖sizeHint方法只会导致窗口的小幅扩大,并且设置最小高度会让我回到开头,其中一些控件在小分辨率上无法评估。
由于我是QT的新手,我实际上没有想法如何谷歌解决方案,因为我能找到的大多数解决方案都是关于在窗口内调整组件而不是窗口本身。
答案 0 :(得分:0)
默认情况下,QScrollArea不会尝试展开以适应其内容。为此,您需要重新实现QScrollArea的sizeHint()以返回QScrollArea的子窗口小部件的大小。
在你的问题中,听起来你正试图重新实现MainWindow的sizeHint?在顶层窗口上重新实现sizeHint对于设计用于布局内部小部件的sizeHint没有任何影响。