2009-08-31 9 views

答えて

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..."); 

これは実際に動作するかどうかを知ることができます。私はそれをテストすることに慣れてきたことはありませんが、まさにこれがこの目的のために設計されたようです。誰かが行動のtoogle状態のために同じことを探している場合

+0

私は同じアクションのための2つの根本的に異なるアイコンを使用しないことをお勧めするが、これは、これを行うには正しい方法である - それは混乱する傾向がありますユーザーインターフェース。 – Thomi

+0

@Thomiアイテムがアクティブかどうかを示す色を追加するのはどうですか? – Yash

0

QAction :: changed()に信号を送るためにスロットを接続し、アクションが有効または無効になっている場合はアイコンをそこに設定します。 (これを行うには、QActionをサブクラス化し、そのサブクラスにスロットを追加してコンストラクタで接続します)。

0

QIcon icon; 
icon.addPixmap(selectedPixmap, QIcon::Normal,QIcon::On); 
icon.addPixmap(normalPixmap, QIcon::Normal,QIcon::Off); 
関連する問題