在下面的代碼中,標籤顯然有足夠的空間放在一條線上,但由於某種原因,它會在'那些'之後將它分成兩行。爲什麼以及如何防止這種情況?爲什麼QLabel提前包裝?
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
this->setFixedSize(250,100);
QLabel *label = new QLabel;
label->setStyleSheet("background-color:blue");
label->setWordWrap(true);
label->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
label->setText("Oh my gosh thats too funny!");
label->setParent(this);
}
再次爲清楚起見,它表明:
Oh my gosh thats too funny!
而且我想:
Oh my gosh thats too funny!
不應該是'label-> setWordWrap(false);'???如果它不是一個錯字,那麼我認爲你有一個答案。來自Qt文檔:「如果這個屬性是真的,那麼標籤文本將在必要時包裝在文字分隔處;否則它根本沒有被包裝。」 – doc
@doc問題在於:「必要時」。這是必要的之前包裝。 – chacham15
如果您希望QLabel適合父級窗口小部件的大小,則應使用佈局。 'QVBoxLayout * layout = new QVBoxLayout;布圖設計> addWidget(標籤);這 - >的setLayout(佈局);'。 QWidget不會自行重新定位和調整子窗口小部件的大小。 – doc