Maigcally Я не могу наследовать от QWidget с использованием PyQt 4:Как наследовать от QWidget в PyQt?
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)
Как вы имеете в виду, что это не работает? Есть ли ошибка? Не отображается ли окно? Вы должны быть немного более наглядными. –
Виджет не отображается внутри окна. – cdonts
Можете ли вы приложить скриншот разницы? Основываясь на вашем коде, хотя вы объявляете родителя DnDWidget, вы фактически не размещаете его внутри окна, поэтому я ожидаю, что он не появится. –