已添加并设置滚动区域,但没有滚动条出现

时间:2019-07-17 01:07:39

标签: c++ qt qscrollarea

在过去的两天里,我已经看过并尝试了各种QT scrollArea解决方案,但是没有一个对我有用。这是我在MainWindow构造函数中的滚动区域设置代码。这将生成并运行没有错误,但不会执行任何操作。已经使用QTcreator在表单中设置了 scrollArea ui-> Contents ,并且所需的小部件已移至scrollArea中。

ui->scrollArea->installEventFilter(this);
ui->scrollArea->setMouseTracking(true);
ui->scrollArea->setWidget(ui->Contents);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setSizeConstraint(QLayout::SetMinimumSize);
ui->scrollArea->setLayout(layout);

最后一行似乎可以与以下内容互换:

  

布局-> addWidget(ui-> scrollArea)

但没有人更改结果,这是一个功能齐全的应用程序,但没有我需要的滚动区域。

Here is a screenshot of the applicable form setup:

1 个答案:

答案 0 :(得分:1)

我也遇到了类似的问题,我通过创建scrollArea来解决它,它的内容是通过代码而不是表单,然后才使用setWidget()方法。我在this thread中描述了问题。

在您的情况下,代码应如下所示:

QScrollArea *scrollArea;

scrollArea = new QScrollArea(this);    
scrollArea->installEventFilter(this);
scrollArea->setMouseTracking(true);
scrollArea->setWidget(Contents);//whatever Contents is, i recommend creating it via code
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setSizeConstraint(QLayout::SetMinimumSize);
scrollArea->setLayout(layout);