目前,我有此代码可将多个QLineEdits添加到ui.widget中,但是如果元素过多,我还需要一个垂直滚动条->可用空间有限:

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);

如何使它可滚动?

最佳答案

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

为窗口小部件定义一个固定大小,如果用户创建过多的QLineEdit,则将自定义的QScrollBar添加到该窗口小部件。

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

或使用QScrollArea像这样的图像:c++ - 将滚动条与QGridLayout一起使用-LMLPHP

这是针对github download here的问题的示例项目。

10-04 22:48