Qt设置QWidget的默认宽度

Qt set default width of a QWidget

本文关键字:默认 设置 QWidget Qt      更新时间:2023-10-16

有一天你会陷入愚蠢的事情。我已经设置了"最小/最大宽度",但它默认为"最大宽度"。我希望它默认为最小宽度。我该怎么做。

我也很难理解为什么没有"设置为这个大小,但不修复值"方法。它被称为调整大小,如下所示:

QWidget *widget= new QWidget();
label->resize(50,50);

考虑以下代码

QLabel *label = new QLabel();
label->setMinimumSize(50,50);
label->setMaximumSize(100,100);
label->setText("Hello World");
label->show();

这里的标签将以50:50(宽:高)的大小显示,我们可以将其放大到最大100:100(宽:高时)。这里,最小大小为50:50,最大大小为100:100。

您可以这样设置默认的最小宽度/高度:

int width = 100;
int height = 100;
QWidget * widget = new QWidget();
widget->setMinimumSize(width, height);
widget->deleteLater();

请在此处查看有关setMinimumSize的更多信息:http://qt-project.org/doc/qt-4.8/qwidget.html#minimumSize-道具

您的小部件在布局中吗?您可以尝试更改大小策略:

widget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);

获取小部件的默认大小可以使用:

QWidget widget(this);
widget.minimumSizeHint()

它返回最小大小,小部件希望能够显示内容。

例如:

QSpinBox aSpinBox(this);
const QSize defaultSizeSpinBox = aSpinBox.minimumSizeHint();
std::cout << defaultSizeSpinBox.width() << std::endl;