Моя программа имеет главное окно, которое создает виджет с именем wdg
. Этот виджет имеет QFormLayout
со 193 строками. Я хочу иметь возможность прокручивать QFormLayout
. Я попытался создать QScrollArea
и интегрировать его с макетом и виджетом, но это приводит к тому, что виджет не отображается или полоса прокрутки не отображается. Я думаю, что это как-то связано с тем, что высота нового окна кажется такой же длинной, как и полный макет, и выходит за пределы экрана. Я попытался установить геометрию виджета на ограниченный размер, но он просто изменил положение, а не размер. Результаты в виджете не отображаются:
QWidget *wdg = new QWidget;
QScrollArea *scroll = new QScrollArea;
QFormLayout *formLayout = new QFormLayout(wdg);
int lenght = keys.size();
for(int x=0; x<=lenght-1; x++)
{
QComboBox* combo = new QComboBox;
combo->addItem("Present");
combo->addItem("Present and Voting");
combo->addItem("Absent");
combo->addItem("Absent from Commitee");
combo->setProperty("MyIndex", x);
combo->setCurrentIndex(status[x]);
formLayout->addRow(keys.at(x),combo);
connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(roll(int)));
}
scroll->setWidget(wdg);
wdg->setLayout(formLayout);
wdg->show();
В результате отображается виджет, но нет полосы прокрутки или макета:
QWidget *wdg = new QWidget;
QScrollArea *scroll = new QScrollArea(wdg);
QFormLayout *formLayout = new QFormLayout();
int lenght = keys.size();
for(int x=0; x<=lenght-1; x++)
{
QComboBox* combo = new QComboBox;
combo->addItem("Present");
combo->addItem("Present and Voting");
combo->addItem("Absent");
combo->addItem("Absent from Commitee");
combo->setProperty("MyIndex", x);
combo->setCurrentIndex(status[x]);
formLayout->addRow(keys.at(x),combo);
connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(roll(int)));
}
scroll->setLayout(formLayout);
wdg->show();