This question already has an answer here:
QWidget does not draw background color
(1个答案)
5年前关闭。
我有一个Qt Designer内置的GUI,我正在用PySide框架构建,并且css文件在设计器工具中工作正常,但是在使用
我正在使用pyside-uic工具,如下所示:
在生成的代码中,我有:
对于CSS我有:
第一行在PyCharm中显示警告,说明:
“在__init__外部定义的实例属性centralwidget”
在CSS中,如果我以QWidget为目标,那么我可以在中央小部件上获得所需的样式,但是它将覆盖我的GUI的其余部分。
有什么建议么?
(1个答案)
5年前关闭。
我有一个Qt Designer内置的GUI,我正在用PySide框架构建,并且css文件在设计器工具中工作正常,但是在使用
pyside-uic
工具后,centralwidget对象上的css停止工作。我正在使用pyside-uic工具,如下所示:
pyside-uic.exe FileIn.ui -o FileOut.py
在生成的代码中,我有:
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
对于CSS我有:
MainWindow.setStyleSheet("QWidget#centralwidget{background-color:
qlineargradient(spread:pad, x1:0.683, y1:1, x2:1, y2:0, stop:0
rgba(103, 103, 103,255), stop:1 rgba(144, 144, 144, 255));
"}
第一行在PyCharm中显示警告,说明:
“在__init__外部定义的实例属性centralwidget”
在CSS中,如果我以QWidget为目标,那么我可以在中央小部件上获得所需的样式,但是它将覆盖我的GUI的其余部分。
有什么建议么?
最佳答案
问题的原因是裸QWidget
没有背景。您可以使用自定义paintEvent()
将其实现为自己的小部件,也可以仅使用QFrame
。
以下代码对我有用:
#!/usr/bin/env python
from PySide import QtCore, QtGui
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
widget = QtGui.QFrame()
widget.setObjectName("centralwidget")
self.setCentralWidget(widget)
self.resize(480,320)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
app.setStyleSheet("#centralwidget { background-color: qlineargradient(spread:pad, x1:0.683, y1:1, x2:1, y2:0, stop:0 rgba(103, 103, 103,255), stop:1 rgba(144, 144, 144, 255)); }")
window = MainWindow()
window.show()
sys.exit(app.exec_())
关于python - Pyside Qt centralwidget设置样式表不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26183510/
10-15 07:36