2016-12-15 3 views
0

アイコンと空のテキストのみを使用してQToolBarにアクションを追加していますが、トリガーされたときに各アクションスタイルを変更したい(具体的には、 ): QtoolBar内のQIconのスタイルを変更する

toolbar = new QToolBar; 
action1 = toolbar->addAction(my_icon1, ""); 
action2 = toolbar->addAction(my_icon2, ""); 

QObject::connect(action1, &QAction::triggered, [this]{ 
    // change border color of action1 
    // unset border color of action2 
}); 

QObject::connect(action2, &QAction::triggered, [this]{ 
    // change border color of action2 
    // unset border color of action1 
}); 

しかしQIcon以来

ウィジェット(ないもちろんの QAction)、私は特定のアクションのスタイルを設定する方法がわからない、と QAction::associatedWidget()QToolBarウィジェットを返すと、関連付けられているではありませんボタンをクリックします。

私はQMLまたはuiファイルなしでC++コードのみを使用しています。 QAction::parentWidget以来

答えて

0

QAction::associatedWidgetsの両方ではなく、実際のアクションウィジェットのQToolBarが含まれている、私は(私はそれが上記QAction::方法のための便利な機能のいくつかの種類だろうと思った)QToolBar::widgetForActionに初期信用を与えていません。しかし、そのアクションの実際のウィジェットを返すので、関数名は次のようになります。

toolbar->widgetForAction(action1)->setStyleSheet 
    ("QWidget { border: 1px solid blue; }"); 
関連する問題