def update(self, enabled=None): """ Updates this item based on the interface. """ if enabled is None: enabled = self.checkState(0) == QtCore.Qt.Checked elif not enabled or self._element.get('enabled', 'True') != 'True': self.setCheckState(0, QtCore.Qt.Unchecked) else: self.setCheckState(0, QtCore.Qt.Checked) if enabled: self.setForeground(0, QtGui.QBrush()) else: self.setForeground(0, QtGui.QBrush(QtGui.QColor('lightGray'))) for child in self.children(): child.update(enabled)
def paintEvent(self, event): with XPainter(self) as painter: if self.isHovered(): alpha = 120 else: alpha = 30 x = 0 y = 0 w = self.width() - 1 h = self.height() - 1 clr = QtGui.QColor(self.background()) clr.setAlpha(alpha) brush = QtGui.QBrush(clr) painter.setPen(self.foreground()) painter.setBrush(brush) painter.drawRect(x, y, w, h) painter.drawText(x, y, w, h, QtCore.Qt.AlignCenter | QtCore.Qt.TextWordWrap, self.text())