如何使用QScrollArea设置QMainWindow的期望大小?

3
我正在处理一个项目,需要展示一个比较大的主要控件(纵向)。在我的GUI的初始版本中,它仅仅被添加为QMainWindow的中央控件,这样会导致问题,当屏幕分辨率较小时,控件底部的控件无法访问。为了解决这个问题,我将QScrollArea包装在主要控件周围,但现在即使没有必要,主窗口总是相对较小。
我需要改变什么才能使主窗口(垂直)的大小足够大以显示所有内容,除非它对于屏幕分辨率来说太大?另外,我不想让它被拉伸,所以简单地始终使用整个垂直屏幕分辨率并不是一个选项。理想情况下,大小应该固定为内容所需的大小(不包括滚动区域),只有在需要更小的时候才更小。
覆盖sizeHint方法只会使窗口稍微变大一点,而设置最小高度会使一些控件在分辨率较低的情况下无法访问,这使我又回到了起点。
由于我是QT的新手,实际上已经找不到解决方案,因为我可以找到的大多数解决方案都是关于调整窗口内部组件的大小,而不是窗口本身。
1个回答

0

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

在您的问题中,听起来好像您正在尝试重新实现MainWindow的sizeHint?但是,在顶层窗口上重新实现sizeHint将没有任何效果,因为sizeHint是设计用于布局内部小部件的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接