Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在PyQt4中使用QInputMask和QDoubleValidator?_Python_Pyqt4_Qlineedit_Maskedinput - Fatal编程技术网

Python 如何在PyQt4中使用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

我在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?
有效范围为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)