2017-02-13 15 views
0

私は、メニューのアイテムを異なる色に設定する方法を見つけようとしています。PyQT QAction/QMenu色

Menu Items

ので、例えば、ウェブガイドは、バージョン1.0は透明で、メールサポートは赤、青です。

私はこれを行う方法をしばらく見て、QlabelとQWidgetActionを試しましたが、これはテキストと同じように見えますが、アクションと同じようには見えませんでした。

私はこれが価値があると感じていますが、私はそれをすべて同じに投げ捨てると思っていました。

これは、私はスタイルシートと設定のアクションを持っているかである:

self.setStyleSheet(""" 
     QMenuBar { 
      background-color: rgb(49,49,49); 
      color: rgb(255,255,255); 
      border: 1px solid ; 
     } 

     QMenuBar::item { 
      background-color: rgb(49,49,49); 
      color: rgb(255,255,255); 
     } 

     QMenuBar::item::selected { 
      background-color: rgb(30,30,30); 
     } 

     QMenu { 
      background-color: rgb(49,49,49); 
      color: rgb(255,255,255); 
      border: 1px solid ; 
     } 

     QMenu::item::selected { 
      background-color: rgb(30,30,30); 

     } 
    """) 

    self.XactionHelpFAQ = QtGui.QAction('Web Guide', self) 
    self.XactionHelpEmail = QtGui.QAction('Email Support', self) 
    self.XactionHelpVersion = QtGui.QAction('Version 1.0', self) 

    self.Xmenubar = QtGui.QMenuBar(self) 
    self.Xmenubar.setObjectName('menubar') 
    self.Xmenubar.setGeometry(QtCore.QRect(0, 0, 684, 21)) 
    self.Xmenubar.setSizeIncrement(QtCore.QSize(0, 0)) 
    self.Xmenubar.setDefaultUp(False) 

    self.XmenuHelp = QtGui.QMenu('Help', self.Xmenubar) 
    self.XmenuHelp.addAction(self.XactionHelpFAQ) 
    self.XmenuHelp.addAction(self.XactionHelpEmail) 
    self.XmenuHelp.addAction(self.XactionHelpVersion) 
+1

に適用されるスタイルシートを上書きしますQtのオブジェクトにいくつかの特定のスタイルシートを適用する必要がありますstylesheetをMenuBarとMenuを含むウィジェットに追加しますが、 'self.Xmenubar'と' self.XmenuHelp'オブジェクトには追加しません。 'self.Xmenubar.self.setStyleSheet(...)'と 'self.XmenuHelp.setStyleSheet(...)'を試してみてください。コードを改善するには、スタイルシート全体を 'QApplication'オブジェクトに設定するだけで、スタイルシートがすべてのQtオブジェクトに適用されることを確認できます。 – SyedElec

+0

よろしくお願いします。今度は2番目のウィンドウに同じメニューバーのスタイルシートがありません:) ありがとうございます。 –

+0

はい、私は確認します:) – SyedElec

答えて

1

あなたは、スタイルシートを適用したい場合は、あなたが「スタイリング」であり、ウィジェットにそれを適用する必要があります。多くの場合

self.Xmenubar = QtGui.QMenuBar(self) 
[...] 
self.Xmenubar.setStyleSheet(""" 
    QMenuBar { 
     background-color: rgb(49,49,49); 
     color: rgb(255,255,255); 
     border: 1px solid ; 
    } 

    QMenuBar::item { 
     background-color: rgb(49,49,49); 
     color: rgb(255,255,255); 
    } 

    QMenuBar::item::selected { 
     background-color: rgb(30,30,30); 
    } 
""") 

self.XmenuHelp = QtGui.QMenu('Help', self.Xmenubar) 
[...] 
self.XmenuHelp.setStyleSheet(""" 
    QMenu { 
     background-color: rgb(49,49,49); 
     color: rgb(255,255,255); 
     border: 1px solid ; 
    } 

    QMenu::item::selected { 
     background-color: rgb(30,30,30); 

    } 
""") 

、あなたは単にあなたが適用され、QApplicationオブジェクトへの一般的なスタイルシートを適用し、あなたのコードに応じてQApplication

+0

ありがとう!ヘルプバーの下にあるすべての色が別の色になりました。私はアイテムのいくつかをさまざまな色合いにすることを考えていましたが、それはおそらくあまりにも多くの愚か者だと思います。これはうまくいく! –

+0

問題ありません!私はあなたに必要なもののスクリーンショットを表示する新しい質問を開くことをお勧めします。私たちはあなたを助けようとすることができます:)質問と回答から学びます。 – SyedElec

関連する問題