1 # -*- coding: utf-8 -*-
3 from PyQt4.QtCore import *
4 from PyQt4.QtGui import *
7 class AmountEdit(QLineEdit):
9 def __init__(self, text_getter, is_int = False, parent=None):
10 QLineEdit.__init__(self, parent)
11 self.text_getter = text_getter
12 self.textChanged.connect(self.numbify)
14 self.is_shortcut = False
17 def paintEvent(self, event):
18 QLineEdit.paintEvent(self, event)
20 panel = QStyleOptionFrameV2()
21 self.initStyleOption(panel)
22 textRect = self.style().subElementRect(QStyle.SE_LineEditContents, panel, self)
23 textRect.adjust(2, 0, -10, 0)
24 painter = QPainter(self)
25 painter.setPen(self.palette().brush(QPalette.Disabled, QPalette.Text).color())
26 painter.drawText(textRect, Qt.AlignRight | Qt.AlignVCenter, self.text_getter())
30 text = unicode(self.text()).strip()
32 self.is_shortcut = True
33 pos = self.cursorPosition()
35 if not self.is_int: chars +='.'
36 s = ''.join([i for i in text if i in chars])
41 s = s[:p] + '.' + s[p:p+8]
43 self.setCursorPosition(pos)