Я только что написал небольшой пример, и мне не удалось его запустить.
from PyQt4 import QtGui, QtCore
import sys
class Drawer(QtGui.QWidget):
def __init__(self, parent=None):
super(Drawer, self).__init__(parent)
self.setStyleSheet("QWidget { background-color: %s }" % QtGui.QColor(99, 0, 0).name())
def mousePressEvent(self, event):
print 'mouse pressed'
self.update();
class MyApp(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.drawer = Drawer(self)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
myapp = MyApp()
myapp.show()
sys.exit(app.exec_())
Виджет не отображается (без цвета, окно серое), и если я нажимаю мышь, нетprint ..
где моя ошибка?
решено : как qiao просто укажите меня в комментарии, моя ошибка - способ добавитьвиджет в виде сцены графа qt4.я думал, что должен позвонить родителю в init и все.Это не так хорошо, я должен добавить QLayout и добавить в него дочерние элементы (это совершенно очевидно: метод addWidget написан только в QLayout, а не в QWidget и имеет систему сценографов без возможностидобавление нового ребенка довольно странно)