我有一个包含许多小部件的
此函数返回一个选项卡,该选项卡将添加到主布局中,其中包含网格布局:
QGridLayout
。当循环添加太多小部件时,它们无法全部适合页面。我想添加一个滚动条,但它显示不正确。此函数返回一个选项卡,该选项卡将添加到主布局中,其中包含网格布局:
QTabWidget *RegistersTab::createTab()
{
QTabWidget *tab = new QTabWidget(this);
std::vector<QGridLayout*> loVec; //to add to master layout
for(int i=0; i<2; i++) //number of pages
{
QWidget *client = new QWidget(this); //this part breaks it
QScrollArea *scrollArea = new QScrollArea(this);
scrollArea->setWidget(client);
QTabWidget *tabPage = new QTabWidget(client);
QGridLayout *loGrid = new QGridLayout(client);
tabPage->setLayout(loGrid);
QString title = QString("Page %1").arg(i);
tab->addTab(tabPage, title);
loVec.push_back(loGrid);
}
m_loGridVec.push_back(loVec);
return tab;
}
GridLayout
向量用于添加小部件并稍后操作它。目前,我只能在选项卡上方得到一个灰色框 - 所以某些内容出现问题了。如果我删除滚动区域并将 (client)
设置为 (this)
,则可以解决此问题。我猜有一个简单的更正方法?编辑(如何制作选项卡):
ui->lo->addWidget(m_tab);
m_tab->addTab(createTab(), title); // m_tabCbc is a QTabWidget;
tabPage
小部件添加一个页面,并在其布局中添加滚动区域。 - thugatabPage
=>pageWidget(QWidget)
=>layout
=>scrollArea
=>scrollAreaWidget(client?)
=>layout(loGrid)
。此外,您不需要为tabPage
设置布局。 - thuga