目錄
1、輸入校驗器——限制輸入框輸入的內容
1)校驗器類型——整數、浮點數、數字字母結合(正則)
2)步驟
3)結果
?編輯
??編輯
4)完整代碼
?2、利用掩碼進行輸入的限制
0)掩碼對照表
1)掩碼解釋
2)掩碼Python實現
3)結果?
4)完整代碼
?5)在Qt_designer中設置掩碼
3、QLineEdit信號textChanged()
1、輸入校驗器——限制輸入框輸入的內容
1)校驗器類型——整數、浮點數、數字字母結合(正則)
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidatorQIntValidator——整數
QDoubleValidator——浮點數類型
QRegExpValidator——數字和字母組合類型
2)步驟
①創建輸入框
②創建校驗器,并且設置輸入的范圍等
# 校驗器設置## 整數intVal = QIntValidator()intVal.setRange(1,99)## 浮點數doubleVal = QDoubleValidator()doubleVal.setRange(-360,360)doubleVal.setNotation(QDoubleValidator.StandardNotation) # 標準顯示doubleVal.setDecimals(2) # 設置浮點數精度## 利用正則設置字母和數字結合reg = QRegExp("[a-zA-Z0-9]+$")regVal = QRegExpValidator()regVal.setRegExp(reg)
③將校驗器與校驗器結合在一起?
# 將校驗器和輸入框綁定intLineEdit.setValidator(intVal)doubleLineEdit.setValidator(doubleVal)regLineEdit.setValidator(regVal)
3)結果
?
4)完整代碼
# -*- coding: utf-8 -*-
# @Time : 2022/5/20 16:44
# @Author : @linlianqin
# @Site :
# @File : QLineEdit_learn.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import QDialog,QLabel,QLineEdit,QPushButton,QFormLayout,QApplication,QWidget
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidator
from PyQt5.QtCore import QRegExp# 校驗器學習
class QLineEditValLearn(QWidget):def __init__(self):super(QLineEditValLearn, self).__init__()self.InitUI()# 初始化界面def InitUI(self):self.setWindowTitle("QLineEdit校驗器學習")# 創建多個輸入框intLineEdit = QLineEdit()doubleLineEdit = QLineEdit()regLineEdit = QLineEdit()# 創建一個form布局formLayout = QFormLayout()# 將控件放入布局中formLayout.addRow("整數",intLineEdit)formLayout.addRow("浮點數",doubleLineEdit)formLayout.addRow("字母數字組合",regLineEdit)# 在輸入框中顯示灰色字體,用于提示intLineEdit.setPlaceholderText("整數")doubleLineEdit.setPlaceholderText("浮點數")regLineEdit.setPlaceholderText("字母數字組合")# 校驗器設置## 整數intVal = QIntValidator()intVal.setRange(1,99)## 浮點數doubleVal = QDoubleValidator()doubleVal.setRange(-360,360)doubleVal.setNotation(QDoubleValidator.StandardNotation) # 標準顯示doubleVal.setDecimals(2) # 設置浮點數精度## 利用正則設置字母和數字結合reg = QRegExp("[a-zA-Z0-9]+$")regVal = QRegExpValidator()regVal.setRegExp(reg)# 將校驗器和輸入框綁定intLineEdit.setValidator(intVal)doubleLineEdit.setValidator(doubleVal)regLineEdit.setValidator(regVal)# 將布局放入到里面self.setLayout(formLayout)if __name__ == '__main__':import sysapp = QApplication(sys.argv)demoWin = QLineEditValLearn()demoWin.show()sys.exit(app.exec_())
?2、利用掩碼進行輸入的限制
0)掩碼對照表
?
1)掩碼解釋
日期掩碼、Mac地址掩碼、許可證掩碼、ip地址掩碼等,根據自己的需求進行設置
2)掩碼Python實現
分號前的是預設的掩碼,分號后是在不輸入的情況下的默認顯示的字符(掩碼)
# 設置掩碼——掩碼其實就是根據常見的模式設置好了顯示的內容格式和長度ipLineEdit.setInputMask("000.000.000.000;_")macLineEdit.setInputMask("HH:HH:HH:HH:HH:HH;_")dateLineEdit.setInputMask("0000-00-00;*")licenseLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#")
3)結果?
未輸入前?
?輸入部分后
?可以看到,輸入了的地方就變成了輸入內容,其余未輸入的地方就還是默認格式(掩碼),若刪除輸入的內容,顯示的還是默認字符(掩碼)
4)完整代碼
# 掩碼限制輸入
class QLineEditMaskLearn(QWidget):def __init__(self):super(QLineEditMaskLearn, self).__init__()self.InitUI()# 初始化界面def InitUI(self):self.setWindowTitle("QLineEdit校驗器學習")# 創建多個輸入框ipLineEdit = QLineEdit()macLineEdit = QLineEdit()dateLineEdit = QLineEdit()licenseLineEdit = QLineEdit()# 設置掩碼——掩碼其實就是根據常見的模式設置好了顯示的內容格式和長度ipLineEdit.setInputMask("000.000.000.000;_")macLineEdit.setInputMask("HH:HH:HH:HH:HH:HH;_")dateLineEdit.setInputMask("0000-00-00;*")licenseLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#")# 創建一個form布局formLayout = QFormLayout()# 將控件放入布局中formLayout.addRow("數字掩碼",ipLineEdit)formLayout.addRow("mac掩碼",macLineEdit)formLayout.addRow("日期掩碼",dateLineEdit)formLayout.addRow("許可證掩碼",licenseLineEdit)# 將布局放入到里面self.setLayout(formLayout)if __name__ == '__main__':import sysapp = QApplication(sys.argv)demoWin = QLineEditMaskLearn()demoWin.show()sys.exit(app.exec_())
?5)在Qt_designer中設置掩碼
3、QLineEdit信號textChanged()
textChanged()——當輸入框中的文本內容發生改變時,會觸發綁定的槽函數事件
輸入框名稱.textChanged.connect(槽函數)