mirror of
https://github.com/muziing/PySide6-Code-Tutorial.git
synced 2025-01-30 14:22:53 +08:00
69 lines
2.4 KiB
Python
69 lines
2.4 KiB
Python
|
import sys
|
|||
|
|
|||
|
from PySide6 import QtGui, QtWidgets
|
|||
|
|
|||
|
"""
|
|||
|
QLineEdit 验证器与掩码
|
|||
|
|
|||
|
单行文本编辑器可以设置验证器(Validator),比如限制只能输入一定范围内的数字等,设置验证器后,
|
|||
|
只有满足验证器要求的字符才能被输入,否则用户输入不会显示在编辑器内
|
|||
|
关于QValidator的详细信息,参考本项目QtGUI目录下对应小节
|
|||
|
|
|||
|
.setValidator(v: QValidator) 设置验证器
|
|||
|
.validator() -> QValidator 获取验证器
|
|||
|
可以通过调用.setValidator(0)来取消当前设置的验证器
|
|||
|
|
|||
|
掩码则是一种更为严格的验证方式,用户输入的每一个字符都必须严格符合该位掩码允许值
|
|||
|
掩码可以单独使用,也可以与验证器配合使用
|
|||
|
详情见文档:https://doc.qt.io/qt-6/qlineedit.html#inputMask-prop
|
|||
|
|
|||
|
.setInputMask(input_mask: str) 设置掩码
|
|||
|
.inputMask() -> str 获取当前掩码
|
|||
|
可以通过调用.setInputMask("")来取消当前设置的掩码
|
|||
|
|
|||
|
"""
|
|||
|
|
|||
|
|
|||
|
class MyWidget(QtWidgets.QWidget):
|
|||
|
def __init__(self, *args, **kwargs):
|
|||
|
super().__init__(*args, **kwargs)
|
|||
|
self.setWindowTitle("QLineEdit-验证器与掩码")
|
|||
|
self.resize(800, 600)
|
|||
|
self.setup_ui()
|
|||
|
self.test_validator()
|
|||
|
self.test_mask()
|
|||
|
|
|||
|
def setup_ui(self) -> None:
|
|||
|
"""设置界面"""
|
|||
|
|
|||
|
self.line_edit = QtWidgets.QLineEdit()
|
|||
|
self.ip_line_edit = QtWidgets.QLineEdit()
|
|||
|
|
|||
|
layout = QtWidgets.QFormLayout()
|
|||
|
layout.addRow(QtWidgets.QLabel("输入两位整数:"), self.line_edit)
|
|||
|
layout.addRow(QtWidgets.QLabel("IPv4地址:"), self.ip_line_edit)
|
|||
|
self.setLayout(layout)
|
|||
|
|
|||
|
def test_validator(self) -> None:
|
|||
|
"""测试验证器功能"""
|
|||
|
|
|||
|
# 创建一个整数验证器对象,其特点为限制只能输入范围内的整数
|
|||
|
validator = QtGui.QIntValidator(10, 99, self.line_edit)
|
|||
|
# 将验证器设置给line_edit
|
|||
|
self.line_edit.setValidator(validator)
|
|||
|
|
|||
|
def test_mask(self) -> None:
|
|||
|
"""测试掩码功能"""
|
|||
|
|
|||
|
# 创建掩码,详细语法见文档
|
|||
|
ip_address_mask = "000.000.000.000;_" # 适用于IPv4地址的掩码,;后的_为占位符
|
|||
|
# 设置输入掩码
|
|||
|
self.ip_line_edit.setInputMask(ip_address_mask)
|
|||
|
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
app = QtWidgets.QApplication(sys.argv)
|
|||
|
window = MyWidget()
|
|||
|
window.show()
|
|||
|
sys.exit(app.exec())
|