Я создаю галерею изображений, я внедрил чтение в файлах и показывая их в изменяемом размерном пространстве прокрутки. Мы решили добавить мета-теги/Кнопки, и я ищу удобный способ не менять слишком много, но добавить эти небольшие функции.
Любое предложение, как я могу это достичь? Могу ли я добавить два Qlabels друг к другу? Я попытался заклеить два ярлыка в новом макете и нажать на это в scrollWidgetLayout, но потом у меня есть только один миниатюрный значок.
//Create new ThumbNail-Object
thumbNail = new Thumbnail(ui->scrollArea);
scrollWidgetLayout->addWidget(thumbNail);
На картинке вы можете видеть, что у меня есть и что мне нужно (желтый).
Вы создаете виджет, который действует как контейнер и помещает метки внутри него. Установите макет этого виджета, я использовал QVBoxLayout
. Лучшим дизайном было бы создание пользовательского виджета путем подкласса QWidget
, но я просто использовал QFrame
чтобы сделать этот пример быстрым и простым.
centralWidget()->setLayout(new QVBoxLayout);
QScrollArea *area = new QScrollArea(this);
area->setWidgetResizable(true);
area->setWidget(new QWidget);
QGridLayout *grid = new QGridLayout;
area->widget()->setLayout(grid);
centralWidget()->layout()->addWidget(area);
for(int row = 0; row < 2; row++)
{
for(int column = 0; column < 5; column++)
{
QFrame *container = new QFrame; // this is your widget.. you can also subclass QWidget to make a custom widget.. might be better design
container->setStyleSheet("QFrame{border: 1px solid black;}"); // just to see the shapes better.. you don't need this
container->setLayout(new QVBoxLayout); // a layout for your widget.. again, if you subclass QWidget do this in its constructor
container->layout()->addWidget(new QLabel("TOP")); // the top label.. in your case where you show the icon
container->layout()->addWidget(new QLabel("BOTTOM")); // the bottom label.. in your case where you show the tag
grid->addWidget(container, row, column); // add the widget to the grid
}
}
QVBoxLayout
который содержит две метки.