def __init__(self, title=None): super(TitleWidget, self).__init__() if sys.platform.startswith("darwin"): color1 = QColor(230, 230, 230, 255) color2 = QColor(177, 177, 177, 255) gradient = QLinearGradient() gradient.setStart(0, 0) gradient.setFinalStop(0, TitleWidget.TitleHeight) gradient.setColorAt(0, color1) gradient.setColorAt(1, color2) brush = QBrush(gradient) palette = QPalette() palette.setBrush(QPalette.Background, brush) self.setPalette(palette) self.setAutoFillBackground(True) self.setMaximumHeight(TitleWidget.TitleHeight) self.setMinimumHeight(TitleWidget.TitleHeight) self.titleLabel = QLabel("", parent=self) font = self.titleLabel.font() font.setPixelSize(11) self.titleLabel.setFont(font) self.titleLabel.setAlignment(Qt.AlignCenter) self.titleLabel.setText(title) layout = QVBoxLayout() layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.titleLabel) self.setLayout(layout)
def paintEvent(self, pe): painter = QPainter(self) painter.save() gradient = QLinearGradient() gradient.setStart(self._grad_start) gradient.setFinalStop(self._grad_end) gradient.setColorAt(0, QColor(230, 230, 230)) gradient.setColorAt(1, QColor(247, 247, 247)) brush = QBrush(gradient) painter.setBrush(brush) pen = QPen(Qt.black) pen.setWidth(1) painter.setPen(pen) painter.drawPath(self._painter_path) painter.restore() font = QFont() font.setFamily("Tahoma") font.setPixelSize(11) font.setBold(True) pen = QPen(Qt.darkGray) painter.setPen(pen) painter.setFont(font) self_rect = QRect(self.rect()) self_rect.moveTo(self._hor_margin, self._ver_margin // 2) painter.drawText(self_rect, Qt.AlignLeft, self._text)
def initUI(self): """ Initializes UI. Creates a horizontal layout to which buttons can be added. """ if self._osx: # Mimic the style of buttons underneath a list view gradient = QLinearGradient() gradient.setStart(0, 0) gradient.setFinalStop(0, self.Height) colorTop = QColor(250, 250, 250, 255) colorMid = QColor(244, 244, 244, 255) colorInBetween = QColor(238, 238, 238, 255) colorMidLow = QColor(234, 234, 234, 255) colorLow = QColor(239, 239, 239, 255) gradient.setColorAt(0, colorTop) gradient.setColorAt(0.45, colorMid) gradient.setColorAt(0.5, colorInBetween) gradient.setColorAt(0.55, colorMidLow) gradient.setColorAt(1, colorLow) brush = QBrush(gradient) palette = QPalette() palette.setBrush(QPalette.Background, brush) self.setAutoFillBackground(True) self.setPalette(palette) # Use a horizontal layout in which to keep # buttons. Initialize with an empty QWidget to # make the buttons align to the left if self.orientation == Qt.Horizontal: self.layout = QHBoxLayout() else: self.layout = QVBoxLayout() self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.addWidget(QWidget()) self.setLayout(self.layout)