scrollArea有序展示任意多张图片
我想完成一个选中一组图片并将他们在窗口中展示的功能,就像打开文件夹,可以通过scroll Bar浏览各图片一样。现在已经实现了获取各张图片路径的功能,我下一步的想法是先加入一个scrollArea,然后创建与图片张数相等的label,最后将图片一个一个的插入进去。但是现在遇到的问题是,我创建了label之后,是通过下面这句将label(名字为imageLabel)插入到scrollArea中的:
ui->scrollArea->setWidget(imageLabel);
但是发现这样就没法修改这个label的具体位置了,我是用setGeometry修改的,不起作用。
imageLabel->setGeometry(100, 100, 50, 30);
我不知道是我修改位置的方法不对还是一开始的思路就错了。
如果有解决我的这个问题的方法或者有更好的思路,请稍微详细点和我解释一下,初学Qt,希望各路大神能够多多指教,谢谢! scrollArea 图片
[解决办法]
其实可以先创建一个Widget,将你所要摆布的label放入这个Widget中,然后将这些lable用layout排布一下,最后把这个widget设为scrollarea的主窗口。可参考一下代码:
QGridLayout *layout = new QGridLayout;
QWidget *containWidget = new QWidget;
for (int i = 0; i < 10; ++i)
{
QLabel *label = new QLabel;
layout->addWidget(label);
}
containWidget->setLayout(layout);
ui->scrollArea->setWidgetResizable(true);
ui->scrollArea->setWidget(containWidget);
this->setCentralWidget(ui->scrollArea);