QScrollArea отсутствует полоса прокрутки

Я думаю, что это та же проблема, что и:QScrollArea изменяет размер QWidget

но нет решения. так позвольте мне разоблачить проблему.

Тест 2, унаследованный от QWidget:составлено:вектор QSpinBoxQScrollAreaQVBoxLayouttest2 (QWidget) <- QScrollArea <- QVBoxLayout <- SpinboxПроблемы :Нет полосы прокрутки[ИСПРАВЛЕНО] Внутренняя часть полосы прокрутки сжимается, чтобы вместить так мало места, что ничего не может быть прочитано (окно может быть изменено во время выполнения, что заставит внутреннюю часть увеличиваться и быть читаемой, тем не менее, полоса прокрутки не появится)

Я думаю, что проблемы приходят из одного источника :: Размер подсказки и макеты (http://qt-project.org/doc/qt-5.1/qtwidgets/qscrollarea.html#details)

Вторую проблему (уменьшенный виджет) можно решить, установив «c-> setSizeConstraint (QLayout :: SetMinimumSize);»

В настоящее время я ищу решение для отсутствующей полосы прокрутки

Вот код, показывающий мою проблему:

<c++>
#include <QWidget>
#include <QScrollArea>
#include <QVBoxLayout>
#include <QSpinBox>

class test2 : public QWidget
{
        Q_OBJECT
    public:
        test2(QWidget *parent = 0) :QWidget(parent)
        {
            b = new QScrollArea(this);
            c = new QVBoxLayout;

            for (int i = 0; i < 10; i++)
            {
                a.push_back(new QSpinBox());
                c->addWidget(a[i]);
            }

            c->setSizeConstraint(QLayout::SetMinimumSize);
            b->setLayout(c);
            b->resize(200, 200);
        }

        ~test2()
        {
            for (int i = 0; i < 10; i++)
                delete a[i];
        }

    protected:

        QVector<QSpinBox*> a;
        QScrollArea* b;
        QVBoxLayout* c;

};


int main(int argc, char *argv[])
{
    ///*
    QApplication app(argc, argv);

    test2 a;

    a.show();

    return app.exec();//*/
}

РЕДАКТИРОВАТЬ :: нашел решение здесь:http://qt-project.org/forums/viewthread/295

если вы не хотите читать огромное количество бесполезного кода, вот что он сделал: он деформировал макет внутри виджета

Решение :: наследовать объект от ScrollBar <- Widget <- Layout

вместо виджета <- ScrollBar <- Макет

но это обходной путь не совсем решение ... Я собираюсь примерить пример, который я привел.

оно работает. У кого-нибудь есть лучшее решение ??

Ответы на вопрос(1)

Ваш ответ на вопрос