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”。