QT Layout Quagmire - PullRequest
       0

QT Layout Quagmire

0 голосов
/ 13 апреля 2020

Я искал помощь по этой проблеме, которую пытаюсь решить, и пока не нашел ее. Я пытаюсь динамически создать список списков фотографий. У меня есть решение (95% уверено, что оно неоптимально), но компоновка с размером объекта вызывает у меня проблемы.

Мой код:

    QVBoxLayout* vLayout  = new QVBoxLayout(this);
    QGroupBox*   groupBox = new QGroupBox();
    QBoxLayout* layout   = new QBoxLayout(QBoxLayout::TopToBottom, this);
    QListWidget* listWid;
    QScrollArea* scrollArea = new QScrollArea(this);

    for(QStringList list: DuplicateList)
    {
        listWid = new QListWidget();
        listWid->setViewMode(QListView::IconMode);
        listWid->setIconSize(QSize(250,250));
        listWid->setResizeMode(QListView::Adjust);
        listWid->setFlow(QListWidget::LeftToRight);
        listWid->setLayoutMode(QListView::Batched);
        listWid->setWrapping(false);

        for(QString path: list)
        {
            listWid->addItem(new QListWidgetItem(QIcon(path),path));
        }

        vLayout->addWidget(listWid);
    }
    groupBox->setLayout(vLayout);
    groupBox->setGeometry(QRect(10, 10, 958, vLayout->sizeHint().height()+10));

    scrollArea->setWidget(groupBox);
    layout->addWidget(scrollArea);
    this->setLayout(layout);
    this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    this->resize(1000,600);

Производит это: enter описание изображения здесь

Когда список превышает то, что может быть отображено в окне, добавляется полоса прокрутки, отлично. Что не сделано, так это когда я получаю размер для правильной установки геометрии группового блока. Также есть ли способ устранить магию c 958 в этом вызове setGeometry?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...