2017-03-31 6 views
1

私は右クリックメニューをテーマにしたQtプロジェクトを継承しています(これは本当に変わっています)。私はQMenuからsetStyleSheet()呼び出しを削除しましたが、項目の背景の代わりにテキストのみを強調表示し、奇妙なフォントサイズを使用します。Qtでメニューのテーマ設定をオフにしますか?

メニューが何らかの形で継承する色を誰かが設定できるQtアプリ内に他の場所がありますか?

メニューはexec()を介して表示され、QMenuとQActionsは親としてQWidgetを使用して作成されます。

答えて

1

おそらく、グローバルに設定されている可能性があります。 QApplication::setStyleSheetとそのグローバルスタイルシート内のQMenuセレクタの呼び出しを探します。また、親ウィジェットのスタイルシートに設定することもできます。

一般的に、私があなただったら、QMenuセレクタを含むスタイルシートのプロジェクトをgrepします。

+0

アプリでQApplication :: setStyleSheet()を呼び出さない。私は見つけることができたすべてのsetStyleSheet()とsetStyle呼び出しをコメントアウトしていました。メインウィンドウも黒で、コンテキストメニューもあります。 – uliwitness

+0

デザイナーでウィンドウが描画されている場合は、スタイルシートプロパティ(.uiファイル内)を確認します。 –

1

スタイルは継承可能です。グローバルスタイルシート、または表示されているメニューの親であるウィジェットのいずれかのスタイルシートがあります。それらをすべて検査してメニュースタイルを削除する必要があります。あなたは、スタイルを適用すべきか否かを記述するために動的プロパティを使用して、メニューのスタイルの適用性を制限する可能性

:次に

QMenu[styled="true"] { ... } 

、メニューがスタイリングされているプラ​​ットフォーム上で、プロパティを適用します。

void styleMenu(QMenu * menu) { 
    #ifndef Q_OS_MACOS 
    menu->setProperty("styled", true); 
    #endif 
} 

... 
styleMenu(menu); // no-op on OS X 
+0

.uiファイルからすべてのstyleSheetsを削除し、コードからすべてのsetStyle呼び出しを削除しました。黒いウィンドウのコンテンツビューでは、まだ変わった黒のコンテキストメニューが表示されます。 – uliwitness

関連する問題