PYQT6 QLineEdit怎么让它只能写入数值
时间: 2024-11-22 14:44:38 浏览: 5
在PYQT6中,`QLineEdit`是一个用于输入文本的控件。如果想让`QLineEdit`只允许用户输入数字,你可以通过设置其`inputMask`属性,并结合信号与槽机制来实现。`inputMask`可以指定用户的输入模式。
下面是一个简单的例子:
```python
from PyQt6.QtWidgets import QApplication, QWidget, QLineEdit
from PyQt6.QtGui import QIntValidator
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.number_input = QLineEdit(self)
self.number_input.setMaxLength(10) # 设置最大长度,防止过长输入
self.number_input.setInputMethodHints(QLineEdit.ImhDigitsOnly) # 只显示数字字符
validator = QIntValidator() # 创建整数验证器
self.number_input.setValidator(validator) # 绑定验证器,输入非数字将不允许
self.number_input.textChanged.connect(self.validate_input) # 文本变化时触发验证
def validate_input(self):
text = self.number_input.text()
if not text.isdigit(): # 如果不是纯数字,则清除输入
self.number_input.setText('')
if __name__ == '__main__':
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在这个示例中,`QIntValidator`会确保用户输入的是整数,`ImhDigitsOnly`表示仅接受数字字符。如果用户试图输入非数字字符,输入框的内容会被清空。
阅读全文