【发布时间】:2009-08-31 17:46:11
【问题描述】:
是否可以在禁用 QAction 时显示自定义图标?例如。启用工具时显示图标 A,禁用工具时显示图标 B。
【问题讨论】:
标签: user-interface qt qt4
是否可以在禁用 QAction 时显示自定义图标?例如。启用工具时显示图标 A,禁用工具时显示图标 B。
【问题讨论】:
标签: user-interface qt qt4
创建QAction 时,您将其传递给QIcon。虽然我自己没有尝试过,但我注意到QIcon 有一个函数void QIcon::addPixmap ( const QPixmap & pixmap, Mode mode = Normal, State state = Off )。 Mode 可以是 Normal、Disabled、Active 或 Selected 之一。因此,我认为这样的事情会起作用:
QPixmap enabled_icon( "enabled.png" );
QPixmap disabled_icon( "disabled.png" );
QIcon icon( enabled_icon );
icon.addPixmap( disabled_icon, QIcon::Disabled );
QAction action( icon, "&Menu action..." );
如果这确实有效,我将有兴趣了解。我从来没有测试过它,但它似乎正是它的设计用途。
【讨论】:
连接一个插槽以发送 QAction::changed() 信号,然后在启用或禁用该操作时设置图标。 (您可以通过子类化 QAction 并在子类中添加插槽,在构造函数中连接它来做到这一点。
【讨论】:
如果有人在寻找相同的动作状态
QIcon icon;
icon.addPixmap( selectedPixmap, QIcon::Normal,QIcon::On );
icon.addPixmap( normalPixmap, QIcon::Normal,QIcon::Off );
【讨论】: