Python 为什么PyQt效应不';没有QMainWindow就不能工作?

Python 为什么PyQt效应不';没有QMainWindow就不能工作?,python,pyqt,Python,Pyqt,我需要创建简单的模糊文本,发现最简单的实现失败了。。就是不明白为什么?最简单的模式是: from PyQt4 import QtGui import sys app = QtGui.QApplication(sys.argv) lbl = QtGui.QLabel() lbl.setFont(QtGui.QFont('Arial', 100)) lbl.setText('Hello, World!') effect = QtGui.QGraphicsBlurEffect() effect.

我需要创建简单的模糊文本,发现最简单的实现失败了。。就是不明白为什么?最简单的模式是:

from PyQt4 import QtGui
import sys

app = QtGui.QApplication(sys.argv)

lbl = QtGui.QLabel()
lbl.setFont(QtGui.QFont('Arial', 100))
lbl.setText('Hello, World!')

effect = QtGui.QGraphicsBlurEffect()
effect.setBlurRadius(20)

lbl.setGraphicsEffect(effect)
lbl.show()

sys.exit(app.exec_())
但这只会产生黑色标签:

只有在使用QMainWindow时,它才能按预期工作:

from PyQt4 import QtGui
import sys

app = QtGui.QApplication(sys.argv)

win = QtGui.QMainWindow()
lbl = QtGui.QLabel()

win.setCentralWidget(lbl)

lbl.setFont(QtGui.QFont('Arial', 100))
lbl.setText('Hello, World!')

effect = QtGui.QGraphicsBlurEffect(lbl)
effect.setBlurRadius(20)
lbl.setGraphicsEffect(effect)

win.show()

sys.exit(app.exec_())
结果很好:


区别是什么?

第一个示例在Linux上工作(Python3/PyQt4和Python2/PySide)。它给出了与第二个例子相同的东西。@tmoreau-hmm。。那么这只是windows的问题。至少windows 7 x64第一个示例在Linux上工作(Python3/PyQt4和Python2/PySide)。它给出了与第二个例子相同的东西。@tmoreau-hmm。。那么这只是windows的问题。至少windows 7 x64