Qt QPushbutton图标上方的文字

时间:2009-09-13 19:00:53

标签: qt

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

3 个答案:

答案 0 :(得分:31)

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

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

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

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

答案 1 :(得分: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");
 }

答案 2 :(得分:5)

QPushButton无法做到这一点。在QPushButton中,唯一的展示位置选项(LayoutDirection)是LeftToRightRightToLeftAuto。但您可以改为使用QToolButton

使用Qt Creator,切换到设计窗格,添加QToolButton,在右侧底部窗格中,您会看到一个选项“textFormat”,在该选项中ToolButtonTextUnderIcon

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