QMenu.item.selected таблица стилей не работает - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь сделать элементы в qmenu, когда они парили, серыми, как и в таблице стилей fusion, которую я применил, они становятся белыми, когда парили. К сожалению, моя таблица стилей не применяется. Я искал и обнаружил, что должен сделать «зависание» как «выбранное», и я сделал это, но без изменений.

from PyQt5.QtWidgets import (QWidget, QPushButton, QApplication, QMessageBox, QRadioButton, QMainWindow, QLabel, QListWidget, QListWidgetItem,
                             QDesktopWidget, QCheckBox, QPlainTextEdit, QHBoxLayout, QVBoxLayout, QGridLayout, QStackedWidget, QFormLayout, QMenu,
                             QComboBox, QScrollArea, QLineEdit, QGroupBox, QListView, QToolTip, QFileDialog, QTabWidget, QAction, QInputDialog)

from PyQt5.QtGui import QIcon, QFont, QRegExpValidator, QStandardItemModel, QStandardItem, QIcon
from PyQt5.QtCore import Qt, QRegExp, QModelIndex

class WindowGUI(QMainWindow):
    def __init__(self, gui):
        super().__init__()
        self.initUI(gui)

    def initUI(self, gui): #Initializing basic GUI
        self.setGeometry(QDesktopWidget().screenGeometry())
        self.showMaximized()

        self.setWindowTitle("ScheduleO")
        self.setWindowIcon(QIcon("icons/schedule.png")); 

        self.menu = self.menuBar()

        self.SCHMenu = self.menu.addMenu("Schedule")
        self.SCHFormat = QAction("New Schedule Format", self)
        self.SCHApply = QAction("Apply Schedule Format...", self)

        #This is where the issue is
        self.menu.setStyleSheet("font: 12pt; background-color: white; QMenu.item.selected {color: gray}")

if __name__ == '__main__':

    app = QApplication(sys.argv)
    app.setStyle("fusion")

    userGUI = UserGUI() #It is not shown, but I have it in my code

    windowGUI = WindowGUI(userGUI)
    windowGUI.show()

    sys.exit(app.exec_())

Более того, когда я пытался

self.menu.setStyleSheet("QMenu {font: 12pt; background-color: white;}; QMenu.item.selected {color: gray}")

Вся таблица стилей не применяется

Есть ли проблема с моим селектором QMenu?

1 Ответ

0 голосов
/ 26 октября 2018

Попробуйте:

import sys
from PyQt5.QtWidgets import (QWidget, QPushButton, QApplication, QMessageBox, QRadioButton, QMainWindow, QLabel, QListWidget, QListWidgetItem,
                             QDesktopWidget, QCheckBox, QPlainTextEdit, QHBoxLayout, QVBoxLayout, QGridLayout, QStackedWidget, QFormLayout, QMenu,
                             QComboBox, QScrollArea, QLineEdit, QGroupBox, QListView, QToolTip, QFileDialog, QTabWidget, QAction, QInputDialog)

from PyQt5.QtGui  import QIcon, QFont, QRegExpValidator, QStandardItemModel, QStandardItem, QIcon
from PyQt5.QtCore import Qt, QRegExp, QModelIndex

class WindowGUI(QMainWindow):
    def __init__(self):     #, gui):
        super().__init__()
        self.initUI()       #(gui)

    def initUI(self):       #, gui):             #Initializing basic GUI
        self.setGeometry(QDesktopWidget().screenGeometry())
        self.showMaximized()

        self.setWindowTitle("ScheduleO")
        self.setWindowIcon(QIcon("E:/_Qt/img/qt-logo.png")) #("icons/schedule.png")); 

        self.menu = self.menuBar()

        self.SCHMenu   = self.menu.addMenu("Schedule")
        self.SCHFormat = QAction("New Schedule Format", self)
        self.SCHApply  = QAction("Apply Schedule Format...", self)

        self.SCHApply.setData('option2') #@
        self.SCHMenu.addAction(self.SCHFormat)
        self.SCHMenu.addAction(self.SCHApply)

        #This is where the issue is
#        self.menu.setStyleSheet("font: 12pt; background-color: white; QMenu.item.selected {color: gray}")
#        self.menu.setStyleSheet("QMenu {font: 12pt; background-color: white;}; QMenu.item.selected {color: gray}")        

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyle("fusion")

    app.setStyleSheet("""    
        QMenu
        {
            font: 12pt;
            background-color: white;
        }

        QMenu::item:selected
        {
            color: gray;
        }
     """)    

#    userGUI = UserGUI() 
    windowGUI = WindowGUI() # (userGUI)
    windowGUI.show()
    sys.exit(app.exec_())

enter image description here

...