如何在只有一个中央窗口部件的QMainWindow中添加滚动条?

3

当一个QMainWindow只包含一个比它自己尺寸更大的中央窗口小部件时,如何为其添加滚动条?

这样可以使用滚动条查看中央窗口小部件的不同部分。

2个回答

4

QMainWindow的中央控件设置为QScrollArea,然后将新的QScrollArea的控件设置为以前的中央控件。

记得将QScrollArea的"控件可调整大小"属性设置为真。


好的,我刚刚尝试了一下...有点有效...原始小部件正在显示,但是即使最初的中央小部件的大小超过QMainWindow的大小,滚动条也不会出现。 - Ahmad
@Ahmad 尝试在你的 QScrollArea 上使用 setHorizontalScrollBarPolicy() 和 setVerticalScrollBarPolicy() 方法。 - Casey
@Casey,我还没有成功。我认为原始的中央小部件没有被正确设置以触发滚动条。你有什么想法吗? - shiami
你好,ianmac45,感谢您的帮助。您能否提供一个示例来说明您所说的内容吗?我会非常感激。谢谢! - Angie Quijano

0
由于某些原因,如果子窗口小部件带有布局且是QWidget,则无法呈现。只有在调用setWidgetResizable(true)之后才有效。
auto mainWidget = new QWidget();
auto scrollArea = new QScrollArea();
scrollArea->setWidget(mainWidget);
scrollArea->setWidgetResizable(true);
setCentralWidget(scrollArea);
resize(1470, 900);

QHBoxLayout* mainLayout = new QHBoxLayout(mainWidget);
...

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