2014-07-09 20 views
1

水平扩大我现在有这样的事情阻止一个QLabel从大的话

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); 

现在我认识到宽度非常小,这就是确定。我想要的是显示所有内容并使其垂直展开。

+0

我看到的唯一的解决方案是每一个检查内容的长度时间内容改变。如果它优于某个值(取决于你的宽度,尺寸策略等),那么你在文本中插入'\ n'。 – Martin

回答

1

您应该插入您的标签的布局,它的sizeconstraint设置为QLayout::SetMinimumSize并设置标签,以QSizePolicy::MinimumExpanding垂直sizepolicy:

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);