python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例
PyQt5單行文本框控件QLineEdit介紹
QLineEdit類(lèi)是一個(gè)單行文本框控件,可以輸入單行字符串。
QLineEdit類(lèi)中常用的方法如下表
| 方法 | 描述 |
|---|---|
| setAlignment() | 按固定值方式對(duì)齊文本 |
| Qt.AlignLeft:水平方向靠左對(duì)齊 | |
| Qt.AlignRight:水平方向靠右對(duì)齊 | |
| Qt.AlignCenter:水平方向居中對(duì)齊 | |
| Qt.AlignJustify:水平方向調(diào)整間距兩端對(duì)齊 | |
| Qt.AlignTop:垂直方向靠上對(duì)齊 | |
| Qt.AlignBottom:垂直方向靠下對(duì)齊 | |
| Qt.AlignVCenter:垂直方向居中對(duì)齊 | |
| setEchoMode() | 設(shè)置文本框的顯示格式,允許輸入的文本顯示格式的值可以是: |
| QLineEdit.Normal:正常顯示所輸入的字符,此為默認(rèn)選項(xiàng) | |
| QLineEdit.NoEcho:不顯示任何輸入的字符,常用于密碼類(lèi)型的輸入,且長(zhǎng)度保密 | |
| QLineEdit.Password:顯示與平臺(tái)相關(guān)的密碼掩飾字符,而不是實(shí)際輸入的字符 | |
| QLineEdit.PasswordEchoOnEdit:在編輯時(shí)顯示字符,負(fù)責(zé)顯示密碼類(lèi)型的輸入 | |
| setPlaceholderText() | 設(shè)置文本框顯示文字 |
| setMaxLength() | 設(shè)置文本框所允許輸入的最大字符數(shù) |
| setReadOnly() | 設(shè)置文本為只讀 |
| setText() | 設(shè)置文本框的內(nèi)容 |
| text() | 返回文本框的內(nèi)容 |
| setDragEnable() | 設(shè)置文本框是否接受拖動(dòng) |
| selectAll() | 全選 |
| setFocus() | 得到焦點(diǎn) |
| setInputMask() | 設(shè)置掩碼 |
| setValidator() | 設(shè)置文本框的驗(yàn)證器(驗(yàn)證規(guī)則),將限制任意可能輸入的文本,可用的校驗(yàn)器為 |
| QIntValidator:限制輸入整數(shù) | |
| QDoubleValidator:限制輸入浮點(diǎn)數(shù) | |
| QRegexpValidator:檢查輸入是否符合正則表達(dá)式 |
QLineEdit類(lèi)中常用信號(hào)如下
| 信號(hào) | 描述 |
|---|---|
| selectionChanged | 只要選擇改變了,這個(gè)信號(hào)就會(huì)發(fā)射 |
| textChanged | 當(dāng)修改文本內(nèi)容時(shí),這個(gè)信號(hào)就會(huì)發(fā)射 |
| editingFinished | 當(dāng)編輯文本結(jié)束時(shí),這個(gè)信號(hào)就會(huì)發(fā)射 |
定義輸入掩碼的字符
下表列出了輸入掩碼的占位符和字面字符,并說(shuō)明其如何控制數(shù)據(jù)輸入
| 字符 | 含義 |
|---|---|
| A | ASCII字母字符是必須輸入的(A-Z,a-z) |
| a | ASCII字母字符是允許輸入的,但不是必須輸入的 |
| N | ASCII字母字符是必須輸入的(A-Z,a-z,0-9) |
| n | ASCII字母字符是允許輸入的,但不是必須輸入的 |
| X | 任何字符都是必須輸入 |
| x | 任何字符都是允許輸入的,但不是必須輸入的 |
| 9 | ASCII數(shù)字字符是必須輸入的(0-9) |
| 0 | ASCII數(shù)字字符是允許輸入的,但不是必須輸入的 |
| D | ASCII數(shù)字字符是必須輸入的(1-9) |
| d | ASCII數(shù)字字符是允許輸入的,但不是必須的(1-9) |
| # | ASCII數(shù)字字符與加減字符是允許輸入的,但不是必須的 |
| H | 十六進(jìn)制格式字符是必須輸入的(A-F,a-f,0-9) |
| h | 十六進(jìn)制格式字符允許輸入,但不是必須的 |
| B | 二進(jìn)制格式字符是必須輸入的(0,1) |
| b | 二進(jìn)制格式字符是允許輸入的,但不是必須的 |
| > | 所有字母字符都大寫(xiě) |
| < | 所有字母字符都小寫(xiě) |
| ! | 關(guān)閉大小寫(xiě)轉(zhuǎn)換 |
| \ | 使用‘\'轉(zhuǎn)義上面列出的字符 |
掩碼由掩碼字符與分隔符字符串組成,后面可以跟一個(gè)分號(hào)和空白字符,空白字符在編輯后會(huì)從文本刪除的
掩碼示例如下:
| 掩碼 | 注意事項(xiàng) |
|---|---|
| 000.000.000.000;_ | ip地址,空白字符是‘_' |
| HH:HH:HH:HH:HH:HH; | MAC地址 |
| 0000-00-00 | 日期,空白字符是空格 |
| >AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;# | 許可證號(hào),空白字符是‘_',所有字母都轉(zhuǎn)換為大寫(xiě) |
EchoMode的顯示效果
from PyQt5.QtWidgets import QApplication,QLineEdit,QWidget,QFormLayout
import sys
class lineEditDemo(QWidget):
def __init__(self,parent=None):
super(lineEditDemo, self).__init__(parent)
self.setWindowTitle('QLineEdit例子')
#實(shí)例化表單布局
flo=QFormLayout()
#創(chuàng)建4個(gè)文本輸入框
PNormalLineEdit=QLineEdit()
pNoEchoLineEdit=QLineEdit()
pPasswordListEdit=QLineEdit()
pPasswordEchoOnEditLineEdit=QLineEdit()
#添加到表單布局中
#flo.addRow(文本名稱(chēng)(可以自定義),文本框)
flo.addRow('Normal',PNormalLineEdit)
flo.addRow('NoEcho', pNoEchoLineEdit)
flo.addRow('Password', pPasswordListEdit)
flo.addRow('PasswordEchoOnEdit', pPasswordEchoOnEditLineEdit)
#設(shè)置setPlaceholderText()文本框浮現(xiàn)的文字
PNormalLineEdit.setPlaceholderText('Normal')
pNoEchoLineEdit.setPlaceholderText('NoEcho')
pPasswordListEdit.setPlaceholderText('Password')
pPasswordEchoOnEditLineEdit.setPlaceholderText('PasswordEchoOnEdit')
#setEchoMode():設(shè)置顯示效果
#QLineEdit.Normal:正常顯示所輸入的字符,此為默認(rèn)選項(xiàng)
PNormalLineEdit.setEchoMode(QLineEdit.Normal)
#QLineEdit.NoEcho:不顯示任何輸入的字符,常用于密碼類(lèi)型的輸入,且長(zhǎng)度保密
pNoEchoLineEdit.setEchoMode(QLineEdit.NoEcho)
#QLineEdit.Password:顯示與平臺(tái)相關(guān)的密碼掩飾字符,而不是實(shí)際輸入的字符
pPasswordListEdit.setEchoMode(QLineEdit.Password)
#QLineEdit.PasswordEchoOnEdit:在編輯時(shí)顯示字符,負(fù)責(zé)顯示密碼類(lèi)型的輸入
pPasswordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit)
#設(shè)置窗口的布局
self.setLayout(flo)
if __name__ == '__main__':
app=QApplication(sys.argv)
win=lineEditDemo()
win.show()
sys.exit(app.exec_())
效果如下

QLineEdit驗(yàn)證器實(shí)例
#導(dǎo)入,Qapplication,單行文本框,窗口,表單布局
from PyQt5.QtWidgets import QApplication,QLineEdit,QWidget,QFormLayout
#導(dǎo)入文本校驗(yàn)器:整數(shù)校驗(yàn)器與浮點(diǎn)數(shù)校驗(yàn)器,其他自定義校驗(yàn)器
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidator
from PyQt5.QtCore import QRegExp
import sys
class lineEditDemo(QWidget):
def __init__(self,parent=None):
super(lineEditDemo, self).__init__(parent)
self.setWindowTitle('QLineEdit例子')
#實(shí)例化表單布局
flo=QFormLayout()
#創(chuàng)建三個(gè)文本框
pIntLineEdit=QLineEdit()
pDoubleLineEdit=QLineEdit()
pValidatorLineEdit=QLineEdit()
#表單布局添加名稱(chēng)及控件
flo.addRow('整型',pIntLineEdit)
flo.addRow('浮點(diǎn)型',pDoubleLineEdit)
flo.addRow('字母和數(shù)字',pValidatorLineEdit)
#設(shè)置文本框的默認(rèn)浮現(xiàn)文本
pIntLineEdit.setPlaceholderText('整型')
pDoubleLineEdit.setPlaceholderText('浮點(diǎn)型')
pValidatorLineEdit.setPlaceholderText('字母和數(shù)字')
#整型 范圍 【1-99】
#實(shí)例化整型驗(yàn)證器,并設(shè)置范圍為1-99
pIntvalidator=QIntValidator(self)
pIntvalidator.setRange(1,99)
#浮點(diǎn)型 范圍 【-360,360】,精度 小數(shù)點(diǎn)后兩位
#實(shí)例化浮點(diǎn)驗(yàn)證器,設(shè)置范圍-360到360
pDoubleValidator=QDoubleValidator()
pDoubleValidator.setRange(-360,360)
pDoubleValidator.setNotation(QDoubleValidator.StandardNotation)
#設(shè)置精度小數(shù)點(diǎn)后兩位
pDoubleValidator.setDecimals(2)
#字母和數(shù)字
#設(shè)置文本允許出現(xiàn)的字符內(nèi)容
reg=QRegExp('[a-zA-Z0-9]+$')
#自定義文本驗(yàn)證器
pValidator=QRegExpValidator(self)
#設(shè)置屬性
pValidator.setRegExp(reg)
#設(shè)置驗(yàn)證器
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_())
效果如下

QLineEdit輸入掩碼實(shí)例
from PyQt5.QtWidgets import QApplication,QLineEdit,QFormLayout,QWidget
import sys
class lineEditDemo(QWidget):
def __init__(self,parent=None):
super(lineEditDemo, self).__init__(parent)
self.setWindowTitle('QlineEdit的掩碼輸入例子')
#實(shí)例化表單布局
flo=QFormLayout()
#創(chuàng)建4個(gè)文本框
pIPlineEdit=QLineEdit()
pMAXlineEdit=QLineEdit()
pDatelineEdit=QLineEdit()
pLiceseLineEdit=QLineEdit()
#setInputMask():設(shè)置掩碼
#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;#')
#添加名稱(chēng)與控件到表單布局中
flo.addRow('數(shù)字掩碼',pIPlineEdit)
flo.addRow('Mac掩碼',pMAXlineEdit)
flo.addRow('日期掩碼',pDatelineEdit)
flo.addRow('許可證掩碼',pLiceseLineEdit)
#設(shè)置窗口的布局
self.setLayout(flo)
if __name__ == '__main__':
app=QApplication(sys.argv)
win=lineEditDemo()
win.show()
sys.exit(app.exec_())
效果如下

QLineEdit綜合實(shí)例
from PyQt5.QtWidgets import QApplication,QLineEdit,QFormLayout,QWidget
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QFont
from PyQt5.QtCore import Qt
import sys
class lineEditDemo(QWidget):
def __init__(self,parent=None):
super(lineEditDemo, self).__init__(parent)
#創(chuàng)建文本
e1=QLineEdit()
#設(shè)置文本校驗(yàn)器為整數(shù),只有輸入整數(shù)才為有效值
e1.setValidator(QIntValidator())
#設(shè)置允許輸入的最大字符數(shù)
e1.setMaxLength(4)
#設(shè)置文本靠右對(duì)齊
e1.setAlignment(Qt.AlignRight)
#設(shè)置文本的字體和字號(hào)大小
e1.setFont(QFont('Arial',20))
#創(chuàng)建文本
e2=QLineEdit()
#設(shè)置浮點(diǎn)型校驗(yàn)器,有效范圍(0.99-99.99),保留兩位小數(shù)
e2.setValidator(QDoubleValidator(0.99,99.99,2))
#表單布局
flo=QFormLayout()
#添加名稱(chēng)及控件到布局中
flo.addRow('integer validator',e1)
flo.addRow('Double Validator',e2)
#創(chuàng)建文本
e3=QLineEdit()
#定義文本輸入掩碼,9:ASCII字母字符是必須輸入的(0-9)
e3.setInputMask('+99_9999_999999')
flo.addRow('Input Mask',e3)
e4=QLineEdit()
#文本修改信號(hào)發(fā)射與槽函數(shù)的綁定
e4.textChanged.connect(self.textchanged)
flo.addRow('Text changed',e4)
e5=QLineEdit()
#設(shè)置文本框顯示的格式,QLineEdit.Password:顯示密碼掩碼字符,而不是實(shí)際輸入的字符
e5.setEchoMode(QLineEdit.Password)
flo.addRow('Password',e5)
#創(chuàng)建文本框并增添文本框的內(nèi)容
e6=QLineEdit('HELLO PyQt5')
#設(shè)置屬性為只讀
e6.setReadOnly(True)
flo.addRow('Read Only',e6)
#編譯完成的信號(hào)與槽函數(shù)的綁定
e5.editingFinished.connect(self.enterPress)
#設(shè)置窗口的布局
self.setLayout(flo)
self.setWindowTitle("QLinedit例子")
def textchanged(self,text):
print('輸入的內(nèi)容為'+text)
def enterPress(self):
print('已輸入')
if __name__ == '__main__':
app=QApplication(sys.argv)
win=lineEditDemo()
win.show()
sys.exit(app.exec_())

在這個(gè)例子中,演示了使用QLineEdit對(duì)象的一些方法
第一個(gè)文本框e1,顯示文本使用自定義字體,右對(duì)齊,允許輸入整數(shù)
第二個(gè)文本框e2,限制輸入小數(shù)點(diǎn)后兩位
第三個(gè)文本框e3,需要一個(gè)輸入掩碼應(yīng)用于電話號(hào)碼
第四個(gè)文本框e4,需要發(fā)射信號(hào)textChanged,鏈接到槽函數(shù)textChanged()
第五個(gè)文本框e5,設(shè)置顯示模式EchoMode為Password需要發(fā)射editingfinished信號(hào)連接到槽函數(shù)enterPress(),一旦用戶按下回車(chē)鍵,該函數(shù)就會(huì)執(zhí)行
本文詳細(xì)講解了PyQt5中單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例,更多關(guān)于PyQt5中單行文本框控件QLineEdit使用方法與實(shí)例請(qǐng)查看下面的相關(guān)鏈接
相關(guān)文章
python中enumerate函數(shù)用法實(shí)例分析
這篇文章主要介紹了python中enumerate函數(shù)用法,以實(shí)例形式較為詳細(xì)的分析了enumerate函數(shù)的功能、定義及使用技巧,需要的朋友可以參考下2015-05-05
Python實(shí)現(xiàn)多個(gè)圓和圓中圓的檢測(cè)
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)多個(gè)圓檢測(cè)和圓中圓的檢測(cè),文中的實(shí)現(xiàn)方法講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2022-11-11
python實(shí)現(xiàn)文件+參數(shù)發(fā)送request的實(shí)例代碼
這篇文章主要介紹了python實(shí)現(xiàn)文件+參數(shù)發(fā)送request的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
ubuntu17.4下為python和python3裝上pip的方法
今天小編就為大家分享一篇ubuntu17.4下為python和python3裝上pip的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
python中Event實(shí)現(xiàn)線程間同步介紹
Python使用Requests請(qǐng)求網(wǎng)頁(yè)方式

