Python 如何在PyQt4中使用QInputMask和QDoubleValidator?
我在PyQt4中创建了一个QLineEdit lineEdit_X_位置输入 我已经用self.ui.lineEdit\u X\u Position.setInputMask(“00000.00;979;”)创建了一个输入掩码 我使用默认值self.ui.lineEdit_X_Position.setText(格式('6543.21',“,.2f”))设置lineEdit 当我查看UI时,它将X_位置显示为“6_543.21”,而不是“6543.21”。 我试图用self.ui.lineEdit_X_Position.setText(format('6543.21','9.2f')设置默认值,但结果为=“65,43.21” 当默认值为“543.21”时,情况最糟。我得到的结果是“54,3,21” 这是面具里的虫子吗? 如何使用我想要的QInputMask格式获得正确的结果,用户只能输入数字 另外,如果我想验证双重结果,如何使用QDoubleValidator?Python 如何在PyQt4中使用QInputMask和QDoubleValidator?,python,pyqt4,qlineedit,maskedinput,Python,Pyqt4,Qlineedit,Maskedinput,我在PyQt4中创建了一个QLineEdit lineEdit_X_位置输入 我已经用self.ui.lineEdit\u X\u Position.setInputMask(“00000.00;979;”)创建了一个输入掩码 我使用默认值self.ui.lineEdit_X_Position.setText(格式('6543.21',“,.2f”))设置lineEdit 当我查看UI时,它将X_位置显示为“6_543.21”,而不是“6543.21”。 我试图用self.ui.lineEdit
有效范围为0.00到10000.00。QInpuMask中没有错误 您设置的掩码允许以多种不同的方式输入某些值,所有这些方式都同样有效。例如,值“543.2”可以由用户输入为
5、\u 4\u 3.\u 2
或\u、543.2
或\u 5,4\u 3.\u 2
等
当以编程方式输入这样一个值时,Qt无法猜测各种可能性中的哪一个是“首选”的,而只是按照通常键入的方向填充空格。因此,您看到的输出是正确的,并且完全符合预期
但是,如果您试图将值限制为某个范围内的数字,而不是固定模式中的字符,那么输入掩码真的是正确的选择吗
A似乎更适合:
self.spinXPosition = QtGui.QDoubleSpinBox(self)
self.spinXPosition.setRange(0, 10000)
self.spinXPosition.setDecimals(2)