禁用时,是否可以为QAction
显示自定义图标?例如。工具启用时显示图标A,禁用工具时显示图标B.
答案 0 :(得分:7)
创建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..." );
如果这确实有效,我会有兴趣学习。我从来没有开始测试它,但它似乎正是这个设计的用途。
答案 1 :(得分:0)
连接一个插槽以发出QAction :: changed()信号,然后在启用或禁用操作时设置图标。 (您可以通过继承QAction并在子类中添加插槽,在构造函数中连接它来完成此操作。)
答案 2 :(得分:0)
如果某人对于谷歌的行动状态看起来相同
QIcon icon;
icon.addPixmap( selectedPixmap, QIcon::Normal,QIcon::On );
icon.addPixmap( normalPixmap, QIcon::Normal,QIcon::Off );