将滚动条与QGridLayout一起使用

时间:2017-08-31 09:11:11

标签: c++ qt scrollbar qt5

目前我有这个代码可以向ui.widget添加几个QLineEdits,但是如果元素太多,我还需要一个垂直滚动条 - >可用空间有限:

QGridLayout *gridLayout = new QGridLayout(ui.widget);

int rowIndex = 0, colIndex = 0;
for(auto number : m_numbers)
{
    QLineEdit *lineEdit = new QLineEdit();
    gridLayout->addWidget(lineEdit, rowIndex, colIndex, Qt::AlignLeft);

    if(colIndex == 7)
    {
        colIndex = 0;
        ++rowIndex;
    }
    else ++colIndex;
}
ui.widget->setLayout(gridLayout);

如何使其可滚动?

1 个答案:

答案 0 :(得分:1)

使用QScrollBar:QScrollBar小部件提供垂直或水平滚动条。

为您的窗口小部件定义修复大小,如果用户创建了太多的QLineEdit,请将自定义的QScrollBar添加到该窗口小部件。

QScrollBar * scroll = new QScrollBar(Qt::Vertical, ui->widget);

或者像这张图片一样使用QScrollAreaScreenshot

https://github.com/aghilpro/QScrollArea

这是关于github download here的问题的示例项目。