Пример #1
0
 def paintEvent(self, event):
     """
     Paints the background for the dock toolbar.
     
     :param      event | <QPaintEvent>
     """
     x = 1
     y = 1
     w = self.width()
     h = self.height()
     
     clr_a = QColor(220, 220, 220)
     clr_b = QColor(190, 190, 190)
     
     grad = QLinearGradient()
     grad.setColorAt(0.0, clr_a)
     grad.setColorAt(0.6, clr_a)
     grad.setColorAt(1.0, clr_b)
     
     # adjust the coloring for the horizontal toolbar
     if self.position() & (self.Position.North | self.Position.South):
         h = self.minimumPixmapSize().height() + 6
         
         if self.position() == self.Position.South:
             y = self.height() - h
             grad.setStart(0, y)
             grad.setFinalStop(0, self.height())
         else:
             grad.setStart(0, 0)
             grad.setFinalStart(0, h)
     
     # adjust the coloring for the vertical toolbar
     if self.position() & (self.Position.East | self.Position.West):
         w = self.minimumPixmapSize().width() + 6
         
         if self.position() == self.Position.West:
             x = self.width() - w
             grad.setStart(x, 0)
             grad.setFinalStop(self.width(), 0)
         else:
             grad.setStart(0, 0)
             grad.setFinalStop(w, 0)
     
     with XPainter(self) as painter:
         painter.fillRect(x, y, w, h, grad)
         
         # show the active action
         action = self.selectedAction()
         if action is not None and \
            not self.currentAction() and \
            not self._animating:
             for lbl in self.actionLabels():
                 if lbl.action() != action:
                     continue
                 
                 geom = lbl.geometry()
                 size = lbl.pixmapSize()
                 
                 if self.position() == self.Position.North:
                     x = geom.left()
                     y = 0
                     w = geom.width()
                     h = size.height() + geom.top() + 2
                 
                 elif self.position() == self.Position.East:
                     x = 0
                     y = geom.top()
                     w = size.width() + geom.left() + 2
                     h = geom.height()
                 
                 painter.setPen(QColor(140, 140, 40))
                 painter.setBrush(QColor(160, 160, 160))
                 painter.drawRect(x, y, w, h)
                 break