我的问题很简单:如何在QScrollArea中设置QScrollBar。我已经测试了很多东西,但没有任何效果。。。也许在QTabWidget中设置QScrollArea是一个问题吗?这是代码:
void GamesWindow::createTabSucces()
{
std::string nameImg;
_succesPage = new QWidget(_tab);
_tab->addTab(_succesPage, " Succes ");
scrollArea = new QScrollArea(_succesPage);
scrollArea->setBackgroundRole(QPalette::Dark);
scrollArea->setFixedSize(500,500);
/* Integration of QScrollBar */
for (int i = 0; i < 45; i++)
{
nameImg = "img/allAchiv/";
nameImg += intToString(i + 1);
nameImg += ".jpg";
_imgSucc[i] = new QLabel(scrollArea);
_imgSucc[i]->setPixmap(QPixmap(QString(nameImg.c_str())));
_imgSucc[i]->setGeometry((14 + (85 * (i % 5))), 46 + ((i / 5) * 85), 60, 60);
}
}
实际上,我在创建了QScrollArea的选项卡中添加了图片(例如8-9行图片),但是只有5个可见,其他隐藏了,因为它们位于定义区域之外的底部。
任何想法 ?谢谢。
最佳答案
你必须:
在页面上添加布局(QVBoxLayout
)
将滚动区域添加到该页面布局
在滚动区域(viewport()
)中向QVBoxLayout
小部件添加布局
将QLabels添加到该视口布局
这样,您无需在每个标签上调用setGeometry