有没有办法在像QPushButton这样的简单小部件上启用文本自动换行?

Sep*_*ram 7 qt word-wrap

我想进行自动QPushButton换行并扩展它的高度而不是扩展宽度.我怎样才能做到这一点?

小智 7

使用QToolButton而不是QPushButton.QToolButton可以使用多行文本,QToolButton的大小比QPushButton的大小更容易控制.

  • 只需在按钮标签中使用\n即可. (5认同)
  • @deadbird,但在这种情况下,它不会是自动换行:)也就是说,不是自动换行;) (3认同)
  • 如何在QToolButton上启用自动换行功能似乎并不那么明显.没有`QToolButton :: setWordWrap`方法. (2认同)

小智 6

我已经通过这种方式解决了按钮上的自动换行问题:

QPushButton *createQPushButtonWithWordWrap(QWidget *parent, const QString &text)
{
   auto btn = new QPushButton(parent);
   auto label = new QLabel(text,btn);
   label->setWordWrap(true);

   auto layout = new QHBoxLayout(btn);
   layout->addWidget(label,0,Qt::AlignCenter);

   return btn;
}
Run Code Online (Sandbox Code Playgroud)


小智 6

一个简单的解决方案是在 QPushButton 内写入文本时插入换行符,就像

This button has \n a long text
Run Code Online (Sandbox Code Playgroud)

如果您在 QtDesigner 中进行挖掘,只需右键单击该按钮,然后选择“插入换行符”即可