Esempio n. 1
0
    def paintEvent(self, event):
        """
        Overloads the paint event to paint additional \
        hint information if no text is set on the \
        editor.
        
        :param      event      | <QPaintEvent>
        """
        super(XLineEdit, self).paintEvent(event)

        # paint the hint text if not text is set
        if self.text() and not (self.icon() and not self.icon().isNull()):
            return

        # paint the hint text
        with XPainter(self) as painter:
            painter.setPen(self.hintColor())

            icon = self.icon()
            left, top, right, bottom = self.getTextMargins()

            w = self.width()
            h = self.height() - 2

            w -= (right + left)
            h -= (bottom + top)

            if icon and not icon.isNull():
                size = icon.actualSize(self.iconSize())
                x = self.cornerRadius() + 2
                y = (self.height() - size.height()) / 2.0

                painter.drawPixmap(x, y,
                                   icon.pixmap(size.width(), size.height()))

                w -= size.width() - 2
            else:
                x = 6 + left

            w -= self._buttonWidth
            y = 2 + top

            # create the elided hint
            if not self.text() and self.hint():
                rect = self.cursorRect()
                metrics = QFontMetrics(self.font())
                hint = metrics.elidedText(self.hint(), Qt.ElideRight, w)
                align = self.alignment()

                if align & Qt.AlignHCenter:
                    x = 0
                else:
                    x = rect.center().x()

                painter.drawText(x, y, w, h, align, hint)
Esempio n. 2
0
 def paintEvent(self, event):
     """
     Overloads the paint event to paint additional \
     hint information if no text is set on the \
     editor.
     
     :param      event      | <QPaintEvent>
     """
     super(XLineEdit, self).paintEvent(event)
     
     # paint the hint text if not text is set
     if self.text() and not (self.icon() and not self.icon().isNull()):
         return
     
     # paint the hint text
     with XPainter(self) as painter:
         painter.setPen(self.hintColor())
         
         icon = self.icon()
         left, top, right, bottom = self.getTextMargins()
         
         w = self.width()
         h = self.height() - 2
         
         w -= (right + left)
         h -= (bottom + top)
         
         if icon and not icon.isNull():
             size = icon.actualSize(self.iconSize())
             x    = self.cornerRadius() + 2
             y    = (self.height() - size.height()) / 2.0
             
             painter.drawPixmap(x, y, icon.pixmap(size.width(), size.height()))
             
             w -= size.width() - 2
         else:
             x = 6 + left
         
         w -= self._buttonWidth
         y = 2 + top
         
         # create the elided hint
         if not self.text() and self.hint():
             rect    = self.cursorRect()
             metrics = QFontMetrics(self.font())
             hint    = metrics.elidedText(self.hint(), Qt.ElideRight, w)
             align   = self.alignment()
             
             if align & Qt.AlignHCenter:
                 x = 0
             else:
                 x = rect.center().x()
             
             painter.drawText(x, y, w, h, align, hint)