2017-06-10 4 views
1

私は小さなウイを持っています。QMenuBarネイティブスタイルを使用していませんか? C++、QTDesigner Ui

MainWindowがあります。一番上はQMenuBarです。

  1. 私は(エラーメッセージを持っていない)プログラムの機能OKすべてを実行すると。

  2. ただし、メニューのサブアイテムは、ホバーまたは押したときにスタイルがありません。

これらは単なるプレーンテキストです。

QMenuBar:

オプション(QMenu)
--About(QAction)
--reset(QAction)

私は、彼らがためのネイティブOSのスタイリングを取るだろうと思った

メニュー項目。しかし、彼らは白黒テキストを超えてスタイルを持っていません。

私はSLOTにQActions接続している:これだけのスタイルはもちろんの

void MainWindow::changeAbout(){ 
    ui->menuBarA->setStyleSheet("background-color: rgb(200,0,0);}"); 
} 

メニュー全体を:経由して、私はスタイルを更新しようとしたそのスロットを使用して、その後

QAction::connect(ui->actionAbout, SIGNAL(hovered()), this, SLOT(changeAbout())); 

を。それはQActionが接続されていることを示しています。

Q:QMenuBarにネイティブOSスタイルを使用させるにはどうすればよいですか?

Q:または、通常のウィンドウのようにホバーと押した状態を含めるようにQActionをスタイルするにはどうすればよいですか?

私はWindows 10を使用していますので、これに何らかの影響がありますか?

答えて

0

私は必要なスタイルを編集する方法を考え出しました。

qtでuiエディタを使用して、QMenuBar - > Qmenuオブジェクトを選択します。これは、自分自身のアクションを含むオブジェクトです。

プロパティエディタでスタイルシートにこれを追加します。

selection-background-color: rgb(204, 204, 204); 
color: rgb(80, 80, 80); 
selection-color: rgb(0, 0, 0); 

これは、彼らが色を変更したり、ホバー時に、その背景の色が変わることで、サブメニュー項目は、ほとんどのプログラムのように動作するようになります。

関連する問題