python GUI庫圖形界面開發之PyQt5單行文本框控件QLineEdit詳細使用方法與實例
QLineEdit類是一個單行文本框控件,可以輸入單行字符串。
QLineEdit類中常用的方法如下表 方法 描述 setAlignment() 按固定值方式對齊文本 Qt.AlignLeft:水平方向靠左對齊 Qt.AlignRight:水平方向靠右對齊 Qt.AlignCenter:水平方向居中對齊 Qt.AlignJustify:水平方向調整間距兩端對齊 Qt.AlignTop:垂直方向靠上對齊 Qt.AlignBottom:垂直方向靠下對齊 Qt.AlignVCenter:垂直方向居中對齊 setEchoMode() 設置文本框的顯示格式,允許輸入的文本顯示格式的值可以是: QLineEdit.Normal:正常顯示所輸入的字符,此為默認選項 QLineEdit.NoEcho:不顯示任何輸入的字符,常用于密碼類型的輸入,且長度保密 QLineEdit.Password:顯示與平臺相關的密碼掩飾字符,而不是實際輸入的字符 QLineEdit.PasswordEchoOnEdit:在編輯時顯示字符,負責顯示密碼類型的輸入 setPlaceholderText() 設置文本框顯示文字 setMaxLength() 設置文本框所允許輸入的最大字符數 setReadOnly() 設置文本為只讀 setText() 設置文本框的內容 text() 返回文本框的內容 setDragEnable() 設置文本框是否接受拖動 selectAll() 全選 setFocus() 得到焦點 setInputMask() 設置掩碼 setValidator() 設置文本框的驗證器(驗證規則),將限制任意可能輸入的文本,可用的校驗器為 QIntValidator:限制輸入整數 QDoubleValidator:限制輸入浮點數 QRegexpValidator:檢查輸入是否符合正則表達式 QLineEdit類中常用信號如下 信號 描述 selectionChanged 只要選擇改變了,這個信號就會發射 textChanged 當修改文本內容時,這個信號就會發射 editingFinished 當編輯文本結束時,這個信號就會發射定義輸入掩碼的字符
下表列出了輸入掩碼的占位符和字面字符,并說明其如何控制數據輸入
字符 含義 A ASCII字母字符是必須輸入的(A-Z,a-z) a ASCII字母字符是允許輸入的,但不是必須輸入的 N ASCII字母字符是必須輸入的(A-Z,a-z,0-9) n ASCII字母字符是允許輸入的,但不是必須輸入的 X 任何字符都是必須輸入 x 任何字符都是允許輸入的,但不是必須輸入的 9 ASCII數字字符是必須輸入的(0-9) 0 ASCII數字字符是允許輸入的,但不是必須輸入的 D ASCII數字字符是必須輸入的(1-9) d ASCII數字字符是允許輸入的,但不是必須的(1-9) # ASCII數字字符與加減字符是允許輸入的,但不是必須的 H 十六進制格式字符是必須輸入的(A-F,a-f,0-9) h 十六進制格式字符允許輸入,但不是必須的 B 二進制格式字符是必須輸入的(0,1) b 二進制格式字符是允許輸入的,但不是必須的 > 所有字母字符都大寫 < 所有字母字符都小寫 ! 關閉大小寫轉換 使用‘’轉義上面列出的字符掩碼由掩碼字符與分隔符字符串組成,后面可以跟一個分號和空白字符,空白字符在編輯后會從文本刪除的
掩碼示例如下:
掩碼 注意事項 000.000.000.000;_ ip地址,空白字符是‘_’ HH:HH:HH:HH:HH:HH; MAC地址 0000-00-00 日期,空白字符是空格 >AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;# 許可證號,空白字符是‘_’,所有字母都轉換為大寫EchoMode的顯示效果
from PyQt5.QtWidgets import QApplication,QLineEdit,QWidget,QFormLayoutimport sysclass lineEditDemo(QWidget): def __init__(self,parent=None): super(lineEditDemo, self).__init__(parent) self.setWindowTitle(’QLineEdit例子’) #實例化表單布局 flo=QFormLayout() #創建4個文本輸入框 PNormalLineEdit=QLineEdit() pNoEchoLineEdit=QLineEdit() pPasswordListEdit=QLineEdit() pPasswordEchoOnEditLineEdit=QLineEdit() #添加到表單布局中 #flo.addRow(文本名稱(可以自定義),文本框) flo.addRow(’Normal’,PNormalLineEdit) flo.addRow(’NoEcho’, pNoEchoLineEdit) flo.addRow(’Password’, pPasswordListEdit) flo.addRow(’PasswordEchoOnEdit’, pPasswordEchoOnEditLineEdit) #設置setPlaceholderText()文本框浮現的文字 PNormalLineEdit.setPlaceholderText(’Normal’) pNoEchoLineEdit.setPlaceholderText(’NoEcho’) pPasswordListEdit.setPlaceholderText(’Password’) pPasswordEchoOnEditLineEdit.setPlaceholderText(’PasswordEchoOnEdit’) #setEchoMode():設置顯示效果 #QLineEdit.Normal:正常顯示所輸入的字符,此為默認選項 PNormalLineEdit.setEchoMode(QLineEdit.Normal) #QLineEdit.NoEcho:不顯示任何輸入的字符,常用于密碼類型的輸入,且長度保密 pNoEchoLineEdit.setEchoMode(QLineEdit.NoEcho) #QLineEdit.Password:顯示與平臺相關的密碼掩飾字符,而不是實際輸入的字符 pPasswordListEdit.setEchoMode(QLineEdit.Password) #QLineEdit.PasswordEchoOnEdit:在編輯時顯示字符,負責顯示密碼類型的輸入 pPasswordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit) #設置窗口的布局 self.setLayout(flo)if __name__ == ’__main__’: app=QApplication(sys.argv) win=lineEditDemo() win.show() sys.exit(app.exec_())
效果如下
#導入,Qapplication,單行文本框,窗口,表單布局from PyQt5.QtWidgets import QApplication,QLineEdit,QWidget,QFormLayout#導入文本校驗器:整數校驗器與浮點數校驗器,其他自定義校驗器from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidatorfrom PyQt5.QtCore import QRegExpimport sysclass lineEditDemo(QWidget): def __init__(self,parent=None): super(lineEditDemo, self).__init__(parent) self.setWindowTitle(’QLineEdit例子’) #實例化表單布局 flo=QFormLayout() #創建三個文本框 pIntLineEdit=QLineEdit() pDoubleLineEdit=QLineEdit() pValidatorLineEdit=QLineEdit() #表單布局添加名稱及控件 flo.addRow(’整型’,pIntLineEdit) flo.addRow(’浮點型’,pDoubleLineEdit) flo.addRow(’字母和數字’,pValidatorLineEdit) #設置文本框的默認浮現文本 pIntLineEdit.setPlaceholderText(’整型’) pDoubleLineEdit.setPlaceholderText(’浮點型’) pValidatorLineEdit.setPlaceholderText(’字母和數字’) #整型 范圍 【1-99】 #實例化整型驗證器,并設置范圍為1-99 pIntvalidator=QIntValidator(self) pIntvalidator.setRange(1,99) #浮點型 范圍 【-360,360】,精度 小數點后兩位 #實例化浮點驗證器,設置范圍-360到360 pDoubleValidator=QDoubleValidator() pDoubleValidator.setRange(-360,360) pDoubleValidator.setNotation(QDoubleValidator.StandardNotation) #設置精度小數點后兩位 pDoubleValidator.setDecimals(2) #字母和數字 #設置文本允許出現的字符內容 reg=QRegExp(’[a-zA-Z0-9]+$’) #自定義文本驗證器 pValidator=QRegExpValidator(self) #設置屬性 pValidator.setRegExp(reg) #設置驗證器 pIntLineEdit.setValidator(pIntvalidator) pDoubleLineEdit.setValidator(pDoubleValidator) pValidatorLineEdit.setValidator(pValidator) self.setLayout(flo)if __name__ == ’__main__’: app=QApplication(sys.argv) win=lineEditDemo() win.show() sys.exit(app.exec_())
效果如下
from PyQt5.QtWidgets import QApplication,QLineEdit,QFormLayout,QWidgetimport sysclass lineEditDemo(QWidget): def __init__(self,parent=None): super(lineEditDemo, self).__init__(parent) self.setWindowTitle(’QlineEdit的掩碼輸入例子’) #實例化表單布局 flo=QFormLayout() #創建4個文本框 pIPlineEdit=QLineEdit() pMAXlineEdit=QLineEdit() pDatelineEdit=QLineEdit() pLiceseLineEdit=QLineEdit() #setInputMask():設置掩碼 #ip地址掩碼 pIPlineEdit.setInputMask(’000.000.000.000;_’) #Mac地址掩碼 pMAXlineEdit.setInputMask(’HH:HH:HH:HH:HH:HH;_’) #日期掩碼 pDatelineEdit.setInputMask(’0000-00-00’) #許可證掩碼 pLiceseLineEdit.setInputMask(’>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#’) #添加名稱與控件到表單布局中 flo.addRow(’數字掩碼’,pIPlineEdit) flo.addRow(’Mac掩碼’,pMAXlineEdit) flo.addRow(’日期掩碼’,pDatelineEdit) flo.addRow(’許可證掩碼’,pLiceseLineEdit) #設置窗口的布局 self.setLayout(flo)if __name__ == ’__main__’: app=QApplication(sys.argv) win=lineEditDemo() win.show() sys.exit(app.exec_())
效果如下
from PyQt5.QtWidgets import QApplication,QLineEdit,QFormLayout,QWidgetfrom PyQt5.QtGui import QIntValidator,QDoubleValidator,QFontfrom PyQt5.QtCore import Qtimport sysclass lineEditDemo(QWidget): def __init__(self,parent=None): super(lineEditDemo, self).__init__(parent) #創建文本 e1=QLineEdit() #設置文本校驗器為整數,只有輸入整數才為有效值 e1.setValidator(QIntValidator()) #設置允許輸入的最大字符數 e1.setMaxLength(4) #設置文本靠右對齊 e1.setAlignment(Qt.AlignRight) #設置文本的字體和字號大小 e1.setFont(QFont(’Arial’,20)) #創建文本 e2=QLineEdit() #設置浮點型校驗器,有效范圍(0.99-99.99),保留兩位小數 e2.setValidator(QDoubleValidator(0.99,99.99,2)) #表單布局 flo=QFormLayout() #添加名稱及控件到布局中 flo.addRow(’integer validator’,e1) flo.addRow(’Double Validator’,e2) #創建文本 e3=QLineEdit() #定義文本輸入掩碼,9:ASCII字母字符是必須輸入的(0-9) e3.setInputMask(’+99_9999_999999’) flo.addRow(’Input Mask’,e3) e4=QLineEdit() #文本修改信號發射與槽函數的綁定 e4.textChanged.connect(self.textchanged) flo.addRow(’Text changed’,e4) e5=QLineEdit() #設置文本框顯示的格式,QLineEdit.Password:顯示密碼掩碼字符,而不是實際輸入的字符 e5.setEchoMode(QLineEdit.Password) flo.addRow(’Password’,e5) #創建文本框并增添文本框的內容 e6=QLineEdit(’HELLO PyQt5’) #設置屬性為只讀 e6.setReadOnly(True) flo.addRow(’Read Only’,e6) #編譯完成的信號與槽函數的綁定 e5.editingFinished.connect(self.enterPress) #設置窗口的布局 self.setLayout(flo) self.setWindowTitle('QLinedit例子') def textchanged(self,text): print(’輸入的內容為’+text) def enterPress(self): print(’已輸入’)if __name__ == ’__main__’: app=QApplication(sys.argv) win=lineEditDemo() win.show() sys.exit(app.exec_())
在這個例子中,演示了使用QLineEdit對象的一些方法
第一個文本框e1,顯示文本使用自定義字體,右對齊,允許輸入整數
第二個文本框e2,限制輸入小數點后兩位
第三個文本框e3,需要一個輸入掩碼應用于電話號碼
第四個文本框e4,需要發射信號textChanged,鏈接到槽函數textChanged()
第五個文本框e5,設置顯示模式EchoMode為Password需要發射editingfinished信號連接到槽函數enterPress(),一旦用戶按下回車鍵,該函數就會執行
本文詳細講解了PyQt5中單行文本框控件QLineEdit詳細使用方法與實例,更多關于PyQt5中單行文本框控件QLineEdit使用方法與實例請查看下面的相關鏈接
相關文章: