当内容大小超过窗口大小时,不会出现QT滚动条

时间:2015-08-13 12:10:07

标签: c++ qt user-interface scrollbar

我正在使用qt,并且我动态创建以下图片的对象(每个时间轴都是一个小部件)。 结构是我将此小部件添加到verticalLayout,即scrollArea包含的小部件。 但不幸的是,当它应该存在时,滚动条不会出现: enter image description here 如果我增加窗口的大小,内容将正确显示: enter image description here 但由于窗口内创建的时间线数量可能大于屏幕大小,因此我需要一个滚动条。可能是什么问题呢?该

编辑:一些源代码,主窗口的构造函数:某些代码不存在,因为它是使用QTCreator创建的

Schedule::Schedule(QString pathname, QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Schedule)
{
    ui->setupUi(this);
    ui->scrollArea->setLayout(ui->pageLayout);

    traceParser parser(pathname);
    parser.readJson();
    ArchitectureParameter arch = parser.getArchParam();

    QString taskName;


    for(std::list<QString>::iterator taskNameIter = parser.getTaskNames().begin();
        taskNameIter != parser.getTaskNames().end(); taskNameIter++)
    {
        taskName = *taskNameIter;
        TaskSchedule *t = new TaskSchedule(this , taskName, 80, arch.nCPU(), arch.maxTime(),
                                          parser.getExecList(taskName), parser.getTaskSimpleEventsMap(taskName));
        t->resize(600, t->height());
        t->resize(600, t->width());
        ui->pageLayout->addWidget(t);

    }

}

1 个答案:

答案 0 :(得分:1)

可能会发生这种情况,因为您在scrollArea上设置了布局。这是适合我的快速片段:

var testing = '[{"appid": "730", "contextid": "2", "amount": "1", "assetid": "2883267603"}, {"appid": "730", "contextid": "2", "amount": "1", "assetid": "3084880561"}]'; 

请注意,我在testWidget上设置布局,然后在scrollArea上设置setWidget