创建没有布局的可滚动窗口

时间:2019-05-29 13:40:44

标签: c++ qt

我正在尝试实现某些我认为非常容易做到的事情。但是由于某种原因,QtDesigner令我发疯,它根本行不通...

我创建了一个GUI,并在窗口中自由布置了不同的元素,没有布局或类似的东西。在某些时候,有很多元素,所以我想要做的就是使其可以上下滚动,以查看所有元素。

因此,我在QtDesigner中添加了ScrollArea并将所有元素添加为该ScrollArea的子元素(顺便说一句,这也很麻烦,因为显然在Object Viewer中拖放并不是一件事情,并编辑.ui文件也是不允许的。。。

所以我现在得到的结果如下:

  • 调整大小之前-没有滚动条,底部的元素不可访问

enter image description here

  • 垂直调整大小-一些东西仍在底部折断

enter image description here

因此,如您所见,尽管我创建了ScrollArea ...但没有滚动区域。所以我在Google上搜索了一下,发现可以将布局添加到滚动区域,是的,最后是滚动条!但是,在这个世界上,我应该如何按照您在屏幕快照中看到的方式对元素进行布局。它们是如此严格。

我应该如何在没有这种限制性布局的情况下简单地获得垂直滚动条?!

这是我的对象查看器的外观

这就是创建GUI时所需要的:

ui->setupUi(this);
//setCentralWidget(ui->scrollArea);
//ui->scrollArea->setWidgetResizable(true);

我尝试了一下,没有注释行。无论我做什么,都没有滚动条。

1 个答案:

答案 0 :(得分:0)

尝试解决此问题:

在Qt Designer中:

  • 选择QScrollArea对象。
  • 取消选中QScrollArea属性widgetResizable

在C ++中:

// If you want to set `widgetResizable` programmaticly
ui->scrollArea->setWidgetResizable(false); // Optional if you did it in Qt Designer
ui->scrollArea->widget()->adjustSize();