Как исправить неправильное изменение размера в qt label?

#c #qt #resize #qtwidgets

#c #qt #изменение размера #qtwidgets

Вопрос:

В настоящее время я учусь использовать Qt. Итак, я пытаюсь создать приложение, которое использует QtWidgets. Однако, когда я запустил свою программу и вручную изменил размер полученного окна, отображаемые тексты были обрезаны (см. Изображение)

.

Код, который я использую, показан ниже:

 #include <QApplication>
#include "FenPrincipale.h"

using namespace std;

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

    FenPrincipale fenetre;
    fenetre.show();

    return app.exec();
}
  

и FenPrincipale содержит:

 FenPrincipale::FenPrincipale()
{
    QWidget mainFen;
    QGroupBox *groupbox1 = new QGroupBox("Class definition", amp;mainFen);
    QLineEdit *className = new QLineEdit;
    QLineEdit *mother_className = new QLineEdit;

    QFormLayout *class_def = new QFormLayout;
    class_def->addRow("Class name", className);
    class_def->addRow("Mother Class", mother_className);

    groupbox1->setLayout(class_def);

    QGroupBox *groupbox2 = new QGroupBox("Options", amp;mainFen);
    QCheckBox *header_protect = new QCheckBox("Protect header against mutiple inclusions");
    QCheckBox *constr_gen= new QCheckBox("Generate default constructor");
    QCheckBox *destruct_gen= new QCheckBox("Generate a destructor");

    QVBoxLayout *options_layout = new QVBoxLayout;
    options_layout->addWidget(header_protect);
    options_layout->addWidget(constr_gen);
    options_layout->addWidget(destruct_gen);

    groupbox2->setLayout(options_layout);

    QVBoxLayout *main_layout = new QVBoxLayout;
    main_layout->addWidget(groupbox1);
    main_layout->addWidget(groupbox2);

    this->setLayout(main_layout);
    this->setWindowTitle("Zero Class Generator");
    this->resize(400,450);
}
  

Я понятия не имею, как решить эту проблему. Кто-нибудь может мне помочь?

Комментарии:

1.Помимо всего прочего, вы используете локальную область QWidget mainFen в качестве родительского элемента для различных других виджетов. Это приведет к удалению этих дочерних виджетов, когда mainFen они выйдут за пределы области видимости в конце конструктора.

Ответ №1:

 QWidget::setMinimumSize  
  

должно выполнить задание

https://doc.qt.io/qt-5/qwidget.html#setMinimumSize-1