Thursday 15 August 2013

qt4 - PyQt4 spinbox with 64bit integers -



qt4 - PyQt4 spinbox with 64bit integers -

is possible modify pyqt spinbox work integers bigger 32bit (-2147483648 - 2147483647)? know possible write new spinbox in c++ 64 bit int info type, complicate.

many hints. tried qdoublespinbox didn't tried set values manually. cause doesn't fit purposes i've written own spinbox. below code. maybe helpful else. documentation subclassing qabstractspinbox bit rare. default maximum consistent numpy.uint64's maximum. in theory there should no limit, cause qlineedit used representation. if need numbers longer 20 signs adapt validators regular expression.

class bigintspinbox(qtgui.qabstractspinbox): def __init__(self, parent=none): super(bigintspinbox, self).__init__(parent) self._singlestep = 1 self._minimum = -18446744073709551616 self._maximum = 18446744073709551615 self.lineedit = qtgui.qlineedit(self) rx = qtcore.qregexp("[1-9]\\d{0,20}") validator = qtgui.qregexpvalidator(rx, self) self.lineedit.setvalidator(validator) self.setlineedit(self.lineedit) def value(self): try: homecoming int(self.lineedit.text()) except: raise homecoming 0 def setvalue(self, value): if self._valueinrange(value): self.lineedit.settext(str(value)) def stepby(self, steps): self.setvalue(self.value() + steps*self.singlestep()) def stepenabled(self): homecoming self.stepupenabled | self.stepdownenabled def setsinglestep(self, singlestep): assert isinstance(singlestep, int) # don't utilize negative values self._singlestep = abs(singlestep) def singlestep(self): homecoming self._singlestep def minimum(self): homecoming self._minimum def setminimum(self, minimum): assert isinstance(minimum, int) or isinstance(minimum, long) self._minimum = minimum def maximum(self): homecoming self._maximum def setmaximum(self, maximum): assert isinstance(maximum, int) or isinstance(maximum, long) self._maximum = maximum def _valueinrange(self, value): if value >= self.minimum() , value <= self.maximum(): homecoming true else: homecoming false

qt4 pyqt4 biginteger

No comments:

Post a Comment