【发布时间】:2009-09-13 19:00:52
【问题描述】:
当我创建一个带有图标的 QPushButton 时,默认情况下它会在图标右侧显示文本。有没有办法让文字显示在图标下方?
【问题讨论】:
-
@Lundin 没问题。这是试图改善职位。我认为强调类名是个好主意。我还选择了帖子中最重要的词,以便于理解。
-
@fat 格式化类名或者其他明显的代码就可以了,但是随机词就不用加强调了。
标签: qt
当我创建一个带有图标的 QPushButton 时,默认情况下它会在图标右侧显示文本。有没有办法让文字显示在图标下方?
【问题讨论】:
标签: qt
如果可以的话,最简单的做法是改用QToolButton:
QToolButton* button = new QToolButton(this);
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
button->setIcon(myIcon);
button->setText("Sample text");
如果这不是一个选项,您可以考虑创建自己的按钮小部件,可能源自 QPushButton 或 QAbstractButton。在这种情况下,您可能(我自己还没有尝试过)希望将大部分精力集中在重新实现 paintEvent()。
[编辑:阅读 cmets 寻找可能比这更简单的替代方案]
【讨论】:
[Edit: read the comments for alternatives ...,您能澄清一下您指的是哪个评论或解决方案吗?例如,您是指 Harald Scheirich 2009 年 9 月 13 日 21:11 在此解决方案中发表的评论,还是指另一个 solution 或其他解决方案的评论?
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");
}
【讨论】:
QPushButton 无法做到这一点。在QPushButton 中,唯一的放置选项(LayoutDirection) 是LeftToRight、RightToLeft 和Auto。但你可以改用QToolButton。
使用 Qt Creator,切换到 Design 窗格,添加QToolButton,然后在右侧底部窗格中,您将看到一个选项“textFormat”,在该选项中选择ToolButtonTextUnderIcon。
更新:在最新版本的 Qt Creator (4.7.0) 中,textFormat 选项已更改为 toolButtonStyle。
【讨论】:
QPushButton是不可能的