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)
def paintEvent ( self , event ) : super ( XLineEdit , self ) . paintEvent ( event ) if self . text ( ) and not ( self . icon ( ) and not self . icon ( ) . isNull ( ) ) : return 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 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 )
Overloads the paint event to paint additional \
        hint information if no text is set on the \
        editor.
        
        :param      event      | <QPaintEvent>