class Qt5WayButton(QWidget):
def __init__(self, parent = None):
QWidget.__init__(self, parent)
sp = QSizePolicy()
sp.setHeightForWidth(True)
self.setSizePolicy(sp)
grid = QGridLayout(self)
grid.setMargin(0)
grid.setSpacing(0)
self.m_upButton = NavigationButton(self)
self.m_downButton = NavigationButton(self)
self.m_leftButton = NavigationButton(self)
self.m_rightButton = NavigationButton(self)
self.m_centerButton = NavigationButton(self)
grid.addWidget(self.m_upButton, 0, 0, 1, 2)
grid.addWidget(self.m_downButton, 1, 0, 1, 2)
grid.addWidget(self.m_leftButton, 0, 0, 2, 1)
grid.addWidget(self.m_rightButton, 0, 1, 2, 1)
grid.addWidget(self.m_centerButton, 0, 0, 2, 2)
self.m_rendererBase = QtSvgPixmapCache(self)
# ...
def resizeEvent(self, event):
print "Qt5WayButton.resizeEvent"
# update masks
self.m_upButton.updateMask()
self.m_downButton.updateMask()
self.m_leftButton.updateMask()
self.m_rightButton.updateMask()
self.m_centerButton.updateMask()
QWidget.resizeEvent(self, event)
def paintEvent(self, event):
print "Qt5WayButton.paintEvent, before", event
QWidget.paintEvent(self, event)
print "Qt5WayButton.paintEvent, after", event
painter = QPainter(self)
self.m_rendererBase.render(painter, self.m_centerButton.geometry())
self.m_upButton.paint(painter)
print "Qt5WayButton.paintEvent, m_upButton", self.m_upButton
self.m_downButton.paint(painter)
print "Qt5WayButton.paintEvent, m_downButton", self.m_downButton
self.m_leftButton.paint(painter)
print "Qt5WayButton.paintEvent, m_leftButton", self.m_leftButton
self.m_rightButton.paint(painter)
print "Qt5WayButton.paintEvent, m_rightButton", self.m_rightButton
self.m_centerButton.paint(painter)
print "Qt5WayButton.paintEvent, m_centerButton", self.m_centerButton