当我使用Icon创建QPushButton时,它默认显示图标右侧的文本。有没有办法让文字显示在图标下面?
答案 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)是LeftToRight
,RightToLeft
和Auto
。但您可以改为使用QToolButton
。
使用Qt Creator,切换到设计窗格,添加QToolButton
,在右侧底部窗格中,您会看到一个选项“textFormat
”,在该选项中ToolButtonTextUnderIcon
。
更新:在最新版本的Qt Creator(4.7.0)中,textFormat
选项已更改为toolButtonStyle
。