Элементы графического интерфейса QT не будут уменьшаться до фута до родительского виджета

0

У меня есть три виджета в моем главном окне. Я разрабатываю свою программу, чтобы каждый виджет контролировал класс.

Последние 2 часа я трачу свое время, чтобы поместить 3 элемента GUI в один из этих виджетов. Я хочу иметь ярлык, позицию и кнопку. Я помещаю их в макет сетки (в реальном случае у меня есть 3 строки для простоты, я ставлю 1 строку в примере ниже). И установите родительский шаблон сетки для моего класса. Я ожидаю, что это элементы графического интерфейса пользователя, чтобы изменить размер и соответствовать одной строке этого виджета, независимо от того, что я пробовал, я не смог добиться успеха.

Короче говоря, я ожидаю, что эти элементы будут сжаты, чтобы соответствовать виджету самостоятельно. Но не мог понять, как это сделать. Любой совет?

void
enviromentSetup::createDialogs()
{
    numberOfPoints  = new QLabel (QApplication::translate("leftPanel","numberOfPoints"));

    inputNumberOfPoints = new       
    QLineEdit(QString::number(st_environmentParamaters.number_of_points_in_line));

    maxElementsButton = new QPushButton("Max Elems");

    gridLayout = new QGridLayout(this);
    gridLayout->addWidget(numberOfPoints, 0, 0);
    gridLayout->addWidget(inputNumberOfPoints, 0, 1);
    gridLayout->addWidget(maxElementsButton, 0, 2);


    this->show();
}
  • 0
    Извините, я удалил свой ответ, потому что я не видел, что вы используете другой конструктор QGridLayout, который получает родительский виджет. Но это поднимает другой вопрос, который не отображается в вашем коде: что это за класс environmentSetup? Это наследует от QWidget, QDialog?
  • 0
    Не беспокойтесь, спасибо за ответ. EnvironmentSetup наследует QWidget.
Показать ещё 2 комментария
Теги:
user-interface
qt

1 ответ

0

Недостаточно просто сделать родителем макета главным виджета. Вы также должны явно установить макет виджета.

Добавьте следующую строку перед показом виджета:

this->setLayout(gridLayout);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню