Python 如何通过整个主窗口将CSS样式应用于QMenu
运行下面的示例代码将创建一个单按钮窗口。向上单击按钮将显示一个下拉菜单 当CSS“appStyle”直接应用于Python 如何通过整个主窗口将CSS样式应用于QMenu,python,css,qt,pyqt,stylesheet,Python,Css,Qt,Pyqt,Stylesheet,运行下面的示例代码将创建一个单按钮窗口。向上单击按钮将显示一个下拉菜单 当CSS“appStyle”直接应用于菜单时,它似乎运行良好: menu.setStyleSheet(appStyle) 但当使用以下命令将相同CSS“appStyle”分配给整个窗口时: view.setStyleSheet(appStyle) 什么也没发生(只需注释掉菜单.setStyleSheet(appStyle)即可查看)。 如果CSS样式表只用于整个视图,而不是单独用于每个菜单或每个小部件,那就太好了。如何
菜单时,它似乎运行良好:
menu.setStyleSheet(appStyle)
但当使用以下命令将相同CSS“appStyle”分配给整个窗口时:
view.setStyleSheet(appStyle)
什么也没发生(只需注释掉菜单.setStyleSheet(appStyle)
即可查看)。
如果CSS样式表只用于整个视图,而不是单独用于每个菜单或每个小部件,那就太好了。如何实现
bgColor='#1F1F1F'
appStyle="""
QMenu {{ font-size:10pt; selection-background-color: #ffaa00; selection-color: black; background-color: #7A7A7A; border-style: solid; border: 0px solid #EBEBEB; border-radius: 0; color: #EBEBEB; padding: 0px 0px 0px 0px; }}
QMenu:on {{padding-top: 0px; padding-left: 0px; background-color: #7A7A7A; selection-background-color: #ffaa00; color: #EBEBEB; border-radius: 0;}}
QMenu QAbstractItemView {{ border: 0px solid black; background-color: #7A7A7A; color: #EBEBEB; border-radius: 0; }}
QMenu:hover {{ border: 0px solid #ffa02f; }}
QMenu::drop-down {{ border-radius: 0px; background-color: #7A7A7A; color: #EBEBEB; }}""".format(bgColor)
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
button=QToolButton(self)
button.setText('Click Here')
menu=QMenu()
menu.addAction("Action01")
menu.addAction("Action02")
menu.addAction("Action03")
separator=menu.addAction("")
separator.setSeparator(True)
subMenu=menu.addMenu('SubMenu')
subMenu.addAction("SubAction01")
subMenu.addAction("SubAction02")
subMenu.addAction("SubAction03")
button.setMenu(menu)
button.setPopupMode(QToolButton.InstantPopup)
menu.setStyleSheet(appStyle)
app=QApplication(sys.argv)
view=Window()
view.setStyleSheet(appStyle)
view.show()
sys.exit(app.exec_())
在QMenu
声明上传递查看self
的实例。
因此,不是:
menu=QMenu()
做:
现在,当一个样式表被应用到主窗口时,它的样式表会向下传播到它的子窗口中——在本例中是菜单
和按钮
实例
工作代码如下:
bgColor='#1F1F1F'
appStyle="""
QToolButton {{border: 0px solid #0F0F0F; background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #7A7A7A, stop: 1 #0F0F0F); color: #EBEBEB}}
QMenu QAbstractItemView {{ border: 0px solid black; background-color: #7A7A7A; color: #EBEBEB; border-radius: 0; }}
QMenu {{ font-size:10pt; selection-background-color: #ffaa00; selection-color: black; background-color: #7A7A7A; border-style: solid; border: 0px solid #EBEBEB; border-radius: 0; color: #EBEBEB; padding: 0px 0px 0px 0px; }}
QMenu:on {{padding-top: 0px; padding-left: 0px; background-color: #7A7A7A; selection-background-color: #ffaa00; color: #EBEBEB; border-radius: 0;}}
QMenu:hover {{ border: 0px solid #ffa02f; }}
QMenu::drop-down {{ border-radius: 0px; background-color: #7A7A7A; color: #EBEBEB; }}""".format(bgColor)
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
button=QToolButton(self)
button.setText('Click Here')
menu=QMenu(self)
menu.addAction("Action01")
menu.addAction("Action02")
menu.addAction("Action03")
separator=menu.addAction("")
separator.setSeparator(True)
subMenu=menu.addMenu('SubMenu')
subMenu.addAction("SubAction01")
subMenu.addAction("SubAction02")
subMenu.addAction("SubAction03")
button.setMenu(menu)
button.setPopupMode(QToolButton.InstantPopup)
app=QApplication(sys.argv)
view=Window()
view.setStyleSheet(appStyle)
view.show()
sys.exit(app.exec_())
bgColor='#1F1F1F'
appStyle="""
QToolButton {{border: 0px solid #0F0F0F; background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #7A7A7A, stop: 1 #0F0F0F); color: #EBEBEB}}
QMenu QAbstractItemView {{ border: 0px solid black; background-color: #7A7A7A; color: #EBEBEB; border-radius: 0; }}
QMenu {{ font-size:10pt; selection-background-color: #ffaa00; selection-color: black; background-color: #7A7A7A; border-style: solid; border: 0px solid #EBEBEB; border-radius: 0; color: #EBEBEB; padding: 0px 0px 0px 0px; }}
QMenu:on {{padding-top: 0px; padding-left: 0px; background-color: #7A7A7A; selection-background-color: #ffaa00; color: #EBEBEB; border-radius: 0;}}
QMenu:hover {{ border: 0px solid #ffa02f; }}
QMenu::drop-down {{ border-radius: 0px; background-color: #7A7A7A; color: #EBEBEB; }}""".format(bgColor)
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
button=QToolButton(self)
button.setText('Click Here')
menu=QMenu(self)
menu.addAction("Action01")
menu.addAction("Action02")
menu.addAction("Action03")
separator=menu.addAction("")
separator.setSeparator(True)
subMenu=menu.addMenu('SubMenu')
subMenu.addAction("SubAction01")
subMenu.addAction("SubAction02")
subMenu.addAction("SubAction03")
button.setMenu(menu)
button.setPopupMode(QToolButton.InstantPopup)
app=QApplication(sys.argv)
view=Window()
view.setStyleSheet(appStyle)
view.show()
sys.exit(app.exec_())