【发布时间】:2013-10-21 11:58:31
【问题描述】:
我无法使用 PyQt 4 从 QWidget 继承:
from PyQt4.QtGui import QApplication, QMainWindow, QWidget
class MyWidget(QWidget):
pass
if __name__ == "__main__":
app = QApplication([])
window = QMainWindow()
window.resize(200, 200)
widget1 = MyWidget(window)
widget1.resize(100, 100)
widget1.setStyleSheet("background-color:#FFFFFF")
window.show()
app.exec_()
它不起作用。我只是看不到小部件。但是,使用 QLabel 代替 QWidget 是可行的。
谢谢。
解决方案
重新实现paintEvent:
class MyWidget(QWidget):
def paintEvent(self, event):
o = QStyleOption()
o.initFrom(self)
p = QPainter(self)
self.style().drawPrimitive(QStyle.PE_Widget, o, p, self)
【问题讨论】:
-
你的意思是它不起作用?有错误吗?窗口不出现吗?您需要更具描述性。
-
小部件没有出现在窗口内。
-
你能附上不同的截图吗?根据您的代码,虽然您声明了 DnDWidget 的父级,但实际上并没有将它放在窗口内,所以我希望它不会显示出来。
标签: python-2.7 pyqt qwidget