0
如何查询在QSpinBox(PyQt)中选定值的小数点位置?假设QSpinBox包含值631.1205并且用户选择3,则答案应该是数十(即6 =数百,3 = Tens,1 = 1,1 =十分之一,2 =百分之一,0 =千分之一,5 =十分之一)千分之一)。PyQt/PySide在QSpinBOX中获取所选值的小数点位置
如何查询在QSpinBox(PyQt)中选定值的小数点位置?假设QSpinBox包含值631.1205并且用户选择3,则答案应该是数十(即6 =数百,3 = Tens,1 = 1,1 =十分之一,2 =百分之一,0 =千分之一,5 =十分之一)千分之一)。PyQt/PySide在QSpinBOX中获取所选值的小数点位置
假设您有两个包含您想要返回的文本的列表(如果适合您的用例,请扩展至超过千* s): big = ['Ones','Tens',数百','数千' ] 小= [“十分之一”,“百分位”,“千”]
首先,你需要获得与在QSpinBox
到QLineEdit
参考:
line_edit = spinBox.findChild(QLineEdit)
然后找到其中的指数选择开始:
selectionStart = line_edit.selectionStart()
下一页找到小数点指数:
try:
decimalPoint = str(line_edit.text()).index('.')
except ValueError:
# no decimal point found so assume the number is an integer
decimalPoint = len(str(line_edit.text()))
然后制定出你需要返回什么:
# If something is selected
if selectionStart > -1:
# if we have selected text starting on the left of the decimal
if selectionStart < decimalPoint:
return big[decimalPoint-selectionStart-1]
# else we selected text starting on the right of the decimal
else:
return small[selectionStart-decimalPoint-1]
我建议把这个函数中,把它适当的时候因为我没有你想要做的事情!
用户如何选择“3”?如在选择旋转框中的文本3?或者是否有下拉列表?或者是什么?如果用户选择多个号码会怎么样? –
这是正常的QSpinBox(没有任何下拉列表),用户将通过鼠标选择。如果用户选择更多的一位数字,结果将是较高的值(即631 =百位,31 =十位,205 =百位)。 – Ruchit