Qt QPushbutton图标上方的文字

DHa*_*ick 23 qt

当我使用Icon创建QPushButton时,它默认显示图标右侧的文本.有没有办法让文字显示在图标下面?

ric*_*dwb 31

如果你能够,最简单的方法是使用QToolButton代替:

QToolButton* button = new QToolButton(this);
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
button->setIcon(myIcon);
button->setText("Sample text");
Run Code Online (Sandbox Code Playgroud)

如果这不是一个选项,你可以考虑创建自己的按钮小部件,可能来自QPushButton或QAbstractButton.在这种情况下,您可能(我自己没有尝试过)想要将大部分精力集中在重新实现上paintEvent().

[编辑:阅读可能比这更简单的替代方案的评论]

  • 仅用于格式化的子类通常不值得努力.通过应用样式可以做很多事情.虽然关于样式的文档可能会更好,但它的工作情况相当好,通常也符合预期. (2认同)

小智 7

QPushButton {
    padding: -25px 0 10px 0;
    border: 1px solid black;
    border-radius: 2px;
    background-position: center bottom;
    background-repeat: no-repeat;
    background-origin: content;
    background-image: url(":/new/resource/accept.png");
 }
QPushButton:disabled {
    background-image: url(":/new/resource/accept_b.png");
 }
Run Code Online (Sandbox Code Playgroud)


Raj*_*rma 5

这是不可能的QPushButton.在QPushButton,唯一的放置选项(LayoutDirection)是LeftToRight,RightToLeftAuto.但你可以QToolButton改用.

使用Qt Creator,切换到" 设计"窗格,添加一个QToolButton并在右侧底部窗格中,您将textFormat在该选择中看到一个选项' ' ToolButtonTextUnderIcon.

更新:textFormat选项已更改为toolButtonStyle最新版本的Qt Creator(4.7.0).

  • 在我的qtcreator中,它被称为"toolButtonStyle". (2认同)