【问题标题】:How to fix a bad resizing in qt label?如何修复 qt 标签中的错误调整大小?
【发布时间】:2019-08-14 02:55:49
【问题描述】:

我目前正在学习使用 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", &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", &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);
}

我不知道如何解决这个问题。谁能帮帮我?

【问题讨论】:

  • 除此之外,您还使用本地范围的QWidget mainFen 作为各种其他小部件的父级。当mainFen 在构造函数末尾超出范围时,这将导致这些子小部件被删除。

标签: c++ qt resize qtwidgets


【解决方案1】:
QWidget::setMinimumSize  

应该做这份工作

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2013-05-19
    相关资源
    最近更新 更多