设置QLineEdit只能输入数字 小数点负数 和中英文的 ° ′ ″
时间: 2025-02-02 14:10:48 浏览: 65
要设置`QLineEdit`只能输入数字、小数点、负数以及中英文的度(°)、分(′)、秒(″),可以使用`QValidator`来验证输入。以下是一个示例代码,展示如何实现这一功能:
```python
from PyQt5.QtWidgets import QLineEdit, QApplication, QWidget, QVBoxLayout
from PyQt5.QtGui import QDoubleValidator, QRegExpValidator, QRegExp
import sys
class MyLineEdit(QLineEdit):
def __init__(self, parent=None):
super(MyLineEdit, self).__init__(parent)
# 定义允许的字符
regex = QRegExp("[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?|[°′″]")
validator = QRegExpValidator(regex, self)
self.setValidator(validator)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = QWidget()
layout = QVBoxLayout()
line_edit = MyLineEdit()
layout.addWidget(line_edit)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个自定义的`QLineEdit`类,并在其中设置了一个`QRegExpValidator`。这个正则表达式允许输入数字、小数点、负号以及中英文的度(°)、分(′)、秒(″)。
阅读全文
相关推荐


















