Qt设置QWidget的默认宽度

7

有些时候,我们会陷入一些麻烦的事情中。我已经设置了最大/最小宽度,但它默认选择了最大宽度。我希望将其更改为默认选择最小宽度。请问如何实现呢?

5个回答

2

我也曾经非常困惑为什么没有一个“设置大小但不锁定值”的方法,这个方法被称为resize,示例如下:

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

0

请考虑以下代码

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。


-1

我已经设置了我的最小大小。问题在于运行应用程序时它显示为最大大小。 - nwnoga
我记得如果你将宽度和高度设置为0,最小宽度和高度方法会启动并正确地调整你的部件大小。 - Cameron Tinker

-1

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

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

我以为这就是它了,但不行。我正在处理QSplitter中的一个小部件。 - nwnoga

-1
获取小部件的默认大小可以使用以下方式:
QWidget widget(this);
widget.minimumSizeHint()

它返回小部件想要具有以能够显示内容的最小尺寸。

E.g.:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接