Pyside2 QlineEdit限制只能输入数字和.
时间: 2024-12-09 14:28:35 浏览: 155
在PySide2中,如果你想要限制QLineEdit(线性编辑框)只允许用户输入数字和小数点,可以使用`setValidator()`方法结合正则表达式验证器来实现。以下是一个简单的示例:
```python
from PySide2.QtWidgets import QLineEdit, QVBoxLayout, QApplication
from PySide2.QtCore import Qt
import re
class NumberInput(QLineEdit):
def __init__(self, parent=None):
super().__init__(parent)
self.setAcceptDrops(False) # 阻止拖放文本
self.setAlignment(Qt.AlignRight) # 右对齐显示小数点
self.setValidator(NumberValidator(self))
class NumberValidator(QRegExpValidator):
def __init__(self, parent=None):
pattern = r'^\d+(\.\d+)?$' # 正则表达式,仅允许整数和小数
super().__init__(pattern, parent)
if __name__ == '__main__':
app = QApplication([])
main_widget = QWidget()
layout = QVBoxLayout(main_widget)
line_edit = NumberInput()
layout.addWidget(line_edit)
main_widget.show()
app.exec_()
```
在这个例子中,`NumberValidator`继承自`QRegExpValidator`,并设置了正则表达式`^\d+(\.\d+)?`,该表达式匹配以0或非0数字开始,后面可以跟任意数量的小数点和数字的模式。
阅读全文
相关推荐


















