我试图写一个玩具PyQt5应用程序的CSS样式表。我已经成功地定义了类MainWindow(QMainWindow)
和DefaultWidget(QWidget)
,后者包含两个按钮,我正在尝试对其进行样式化。你知道吗
使用C++ DOCS,我一直在尝试利用^ {CD3>}示例,提供在:<强>Link>/p>
但是,在python应用程序中,实例名的#
表示法似乎没有转换为外部CSS文件的类似self.setStyleSheet()
方法。你知道吗
Python文件(如果有打字错误,请道歉-从另一台计算机转录):
import sys
from PyQt5.Widgets import QApplication, QMainWindow, QWidget, QPushButton, QHBoxLayout
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setStyleSheet(open('./style.css').read())
try:
self.setCentralWidget(DefaultWidget())
else:
some_error_stuff_for_troubleshooting
self.show()
class DefaultWidget(QWidget):
def __init__(self):
super().__init__()
okButton = QPushButton('OK')
cancelButton = QPushButton('Cancel')
hbox = QHBoxLayout()
hbox.addWidget(okButton)
hbox.addWidget(cancelButton)
self.setLayout(hbox)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())
在CSS文件中…
QWidget.MainWindow {
background: blue
}
QPushButton {
background-color: beige
}
QPushButton???okButton {
background-color: green
}
在我放置???
的地方,我尝试了很多东西(尝试遍历类QPushButton.okButton
、QPushButton.DefaultWidget.okButton
、DefaultWidget.okButton
,使用.
、#
、::
和:
符号等等),但在这一点上,它比有根据的猜测更随机。你知道吗
我想让CSS在类名之外处理一些命名约定样式,以帮助尽可能多地从python文件中提取样式。即使符号碰巧是正确的,我是否没有看到我预期的颜色变化,由于继承的风格?你知道吗
编辑:如果有人无意中发现了这一点,.setObjectName()方法或在实例化小部件时声明object name选项。另外,如果您感兴趣的话,这里还有一个类似的问题,就是为什么不使用某种默认名称。 PyQt: is there an better way to set objectName in code?
试试看:
相关问题 更多 >
编程相关推荐