Qt - 获取 QPushButton 图标名称
Posted
技术标签:
【中文标题】Qt - 获取 QPushButton 图标名称【英文标题】:Qt - Get QPushButton icon name 【发布时间】:2013-02-25 08:22:43 【问题描述】:我有两个状态的 QPushButton。我想为每个状态关联一个图标。
就像音乐播放器中的播放|暂停按钮。
为此,我想获取当前图标名称,以便了解下一个要设置的图标是什么。
我可以继承 QPushButton 但值得吗?
【问题讨论】:
为什么不根据推送状态设置图标?使用QPushButton::ischecked()
我试过了:myButton->setStyleSheet(":checked image: url(:/img/pause.png);");
但它不起作用。
【参考方案1】:
不是根据QPushButton
的状态设置图标,而是设置一个具有两种状态的QIcon
,如果您将其与可检查的QPushButton
一起使用,Qt 将选择正确的图标。
QIcon icon = QIcon();
// 'Off' state corresponds to unchecked state of QPushButton
icon.addPixmap( QPixmap( ":/img/play.png" ), QIcon::Normal, QIcon::Off );
// 'On' state corresponds to checked state of QPushButton
icon.addPixmap( QPixmap( ":/img/pause.png" ), QIcon::Normal, QIcon::On );
QPushButton * button = new QPushButton();
button->setIcon( icon );
button->setCheckable( true );
【讨论】:
【参考方案2】:使用 QPushButton::icon() 和 QIcon::name() 获取图标名称。
【讨论】:
QIcon 不存在此方法。 在 Qt 4.8 和 5.0 中都可以:qt-project.org/doc/qt-4.8/qicon.htmlqt-project.org/doc/qt-5.0/qtgui/qicon.html 没关系,这个功能不起作用,Qt搞砸了以上是关于Qt - 获取 QPushButton 图标名称的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Qt 应用程序中使用样式表更改 QPushButton 图标
如何使用 QPushButton 的系统主题图标——Linux 上的 Qt Designer
(Qt C++) QPushButton setIcon() 不工作