目前,我有此代码可将多个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像这样的图像:
这是针对github download here的问题的示例项目。