Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 防止QLabel用大字水平扩展_C++_Qt - Fatal编程技术网

C++ 防止QLabel用大字水平扩展

C++ 防止QLabel用大字水平扩展,c++,qt,C++,Qt,我现在有类似的东西 QLabel* l = new QLabel(this); l->setTextFormat(Qt::RichText); l->set_IsSelf(IsSelf); l->setWordWrap(true); l->setText("Thissssssssssssssssssssssssssssssss"); l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum); l->

我现在有类似的东西

QLabel* l = new QLabel(this);
l->setTextFormat(Qt::RichText);
l->set_IsSelf(IsSelf);
l->setWordWrap(true);
l->setText("Thissssssssssssssssssssssssssssssss"); 
l->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);
l->setMaximumWidth(40);

现在我意识到宽度很小,这没关系。我想要的是显示所有内容并使其垂直扩展。

您应该将标签插入其大小设置为
QLayout::SetMinimumSize
的布局中,并将标签的垂直大小策略设置为
QSizePolicy::MinimumExpanding

QVBoxLayout *layout = new QVBoxLayout(this);
layout->setSizeConstraint(QLayout::SetMinimumSize);

QLabel* l = new QLabel;
l->setWordWrap(true);
l->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);

layout->addWidget(l);

我看到的唯一解决方案是每次内容更改时检查内容的长度。如果大于某个值(取决于宽度、大小策略等),则在文本中插入“\n”。