gpt4 book ai didi

python - 如何更改具有特定 id 的 QMenuBar 的子 css 样式表?

转载 作者:行者123 更新时间:2023-11-28 01:30:36 25 4
gpt4 key购买 nike

我的 pyqt5 应用程序中有一个 QMenuBar,我正在尝试对其进行装饰。我只想更改 id='update' 的 QAction 的颜色,而其他 QAction 保持不变,但它无法正常工作。这是我所拥有的:

self.update_btn = self.menu.addAction('Update')
self.update_btn.setVisible(True)
self.update_btn.setObjectName("update")

self.menu.setStyleSheet(
"""
QMenuBar > QAction#update) {
background: red;
}
""")

我尝试了其他几种方法,但都没有用。

最佳答案

QAction 不支持样式表!

您可以使用 QWidgetAction

试一试:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class MenuDemo(QMainWindow):
def __init__(self,parent=None, *args):
super().__init__(parent, *args)

bar = self.menuBar()

file = bar.addMenu('File')
quit = bar.addMenu('Quit')

open_action = QAction('Open', self)

save_action = QWidgetAction(self) # <------------------------
label = QLabel(" \n New \n")
save_action.setDefaultWidget(label);
save_action.setText('New')

file.addAction(open_action)
file.addAction(save_action)

# ----- setStyleSheet ---------------
self.setStyleSheet("""
QMenu {
background-color: #ABABAB;
border: 1px solid black;
margin: 2px;
}
QMenu::item {
background-color: transparent;
padding: 20px 25px 20px 20px;
}
QMenu::item:selected {
background-color: blue;
}

QLabel {
background-color: yellow;
color: red;
font: 18px;
}
QLabel:hover {
background-color: #654321;
}

""")

quit.aboutToShow.connect(exit)

file.triggered.connect(self.selected)

self.setWindowTitle("Demo QWidgetAction")
self.resize(300, 200)
self.show()

def selected(self, q):
print('\n{} <- selected -> {}'.format(q.text(), q))


if __name__ == '__main__':
app = QApplication(sys.argv)
menus = MenuDemo()
sys.exit(app.exec_())

enter image description here

关于python - 如何更改具有特定 id 的 QMenuBar 的子 css 样式表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51004728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com