我的问题很简单:如何在我的 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
) - 将您的 QLabel 添加到该视口(viewport)布局
这样你就不需要在每个标签上调用 setGeometry
关于c++ - QTabWidget 中的 QScrollBar + QScrollAera,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15938777/