我的问题很简单:如何在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个可见,其他是隐藏,因为它们位于定义区域之外的底部。
有什么想法吗?感谢的。
答案 0 :(得分:1)
你必须:
QVBoxLayout
)viewport()
)QVBoxLayout
窗口小部件添加布局
这样您就不需要在每个标签上调用setGeometry
答案 1 :(得分:1)
您需要将小部件设置为滚动区域,并将图片添加到小部件的布局中。查看QScrollArea::setWidget(QWidget *widget)
答案 2 :(得分:0)
我几乎可以肯定你不能将滚动添加到标签窗口小部件,但我的想法是尝试制作更多可以显示的标签,看看默认情况下滑块是否出现。