利用QT設計師學習PyQt5控件
在Qt中,QLineEdit是文本編輯框控件,是比較基礎且常用的控件的之一
QLineEdit
類屬性 -
設定掩碼inputMask
-
設定文本text
-
文本框輸入的最大字元數maxLength
-
設定邊框frame
-
設定文本框顯示格式echoMode
正常顯示所輸入的字元,此為預設選項
Normal
不顯示任何輸入的字元,常用于密碼類型的輸入,且長度保密
NoEcho
顯示與平台相關的密碼掩飾字元,而不是實際輸入的字元
Password
在編輯時顯示字元,負責顯示密碼類型的輸入
PasswordEchoOnEdit
-
光标位置cursorPosition
-
文本對齊方式alignment
左對齊
AlignLeft
右對齊
AlignRight
水準居中對齊
AlignCenter
水準方向調整間距兩端對齊
AlignJustify
垂直上對齊
AlignTop
垂直方下對齊
AlignBottom
垂直方向居中對齊
AlignVCenter
-
設定文本框是否接受拖動dragEnabled
-
設定文本為隻讀readOnly
-
設定文本框提示文字placeholderText
-
光标移動風格cursorMoveStyle
邏輯風格
LogicalMoveStyle
視覺風格
VisualMoveStyle
-
快速删除按鈕clearButtonEnabled
inputMask
設定掩碼: 下表列出了輸入掩碼的占位符和字面字元,并說明其如何控制資料輸入
-
:ASCII字母字元是必須輸入的(A-Z,a-z)A
-
:ASCII字母字元是允許輸入的,但不是必須輸入的a
-
:ASCII字母字元是必須輸入的(A-Z,a-z,0-9N
-
:ASCII字母字元是允許輸入的,但不是必須輸入的n
-
:任何字元都是必須輸入X
-
:任何字元都是允許輸入的,但不是必須輸入的x
-
:ASCII數字字元是必須輸入的(0-9)9
- :ASCII數字字元是允許輸入的,但不是必須輸入的
-
:ASCII數字字元是必須輸入的(1-9)D
-
:ASCII數字字元是允許輸入的,但不是必須的(1-9)d
-
:ASCII數字字元與加減字元是允許輸入的,但不是必須的#
-
:十六進制格式字元是必須輸入的(A-F,a-f,0-9)H
-
:十六進制格式字元允許輸入,但不是必須的h
-
:二進制格式字元是必須輸入的(0,1)B
-
:二進制格式字元是允許輸入的,但不是必須的b
-
:所有字母字元都大寫>
-
:所有字母字元都小寫<
-
:關閉大小寫轉換!
- :使用‘’轉義上面列出的字元
-
ip位址,空白字元是‘_’000.000.000.000;_
-
MAC位址HH:HH:HH:HH:HH:HH;
-
日期,空白字元是00000-00-00;0
-
許可證号,所有字母都轉換為大寫>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#
QLineEdit
信号 -
光标位置發生改變時發出的信号,并向外界傳遞位置(老的光标位置,新的光标位置)cursorPositionChanged(int,int)
-
結束編輯時發出的信号(焦點離開:Enter鍵,Tab鍵,滑鼠都可以觸發)editingFinished()
-
按下Enter鍵時發出的信号returnPressed()
-
選中的文本發生改變時發出的信号selectionChanged()
-
文本框文本發生改變時發出的信号,并向外界傳遞内容textChanged(QString)
-
文本編輯時發出的型号,并向外界傳遞内容textEdited(QString)
-
不管是使用者在文本框輸入内容,還是開發人員使用代碼設定内容,都會發出信号textChanged(QString)
-
隻有使用者在文本框輸入内容時,才會發出信号textEdited(QString)
QLineEdit
還有一個比較重要的點就是驗證器,需要使用代碼操作 # 導入,Qapplication,單行文本框,視窗
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget
# 導入文本校驗器:整數校驗器,浮點數校驗器,正則校驗器
from PyQt5.QtGui import QIntValidator, QDoubleValidator, QRegExpValidator
# 導入Qt正則子產品
from PyQt5.QtCore import QRegExp
import sys
class lineEditDemo(QWidget):
def __init__(self, parent=None):
super(lineEditDemo, self).__init__(parent)
self.setWindowTitle('QLineEdit例子')
self.resize(300, 300)
int_validato = QIntValidator(50, 100, self) # 執行個體化整型驗證器,并設定範圍為50-100
int_le = QLineEdit(self) # 整型文本框
int_le.setValidator(int_validato) # 設定驗證
int_le.move(50, 10)
# 執行個體化浮點型驗證器,并設定範圍為-100到100,并精确2位小數
float_validato = QDoubleValidator(-100, 100, 2, self)
float_le = QLineEdit(self) # 浮點文本框
float_le.setValidator(float_validato) # 設定驗證
float_le.move(50, 50)
re = QRegExp('[a-zA-Z0-9]+$') # 正則:隻允許出現的大小寫字母和數字
re_validato = QRegExpValidator(re, self) # 執行個體化正則驗證器
re_le = QLineEdit(self) # 正則文本框
re_le.setValidator(re_validato) # 設定驗證
re_le.move(50, 90)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = lineEditDemo()
win.show()
sys.exit(app.exec_())
在驗證整數時,無法限定最小值,并且可輸入的最大值,是上限位數的最大數值,
例如上限是10,那麼可輸入的最大值是99,上限是100,那麼可輸入的最大值是999,
對于浮點數,隻能限制輸入的小數位,無法設定數值範圍,是以通常使用正則進行限定
-
限制隻允許出現大小寫字母和數字"[a-zA-Z0-9]+$"
-
限制浮點數輸入範圍為[-180,180],小數位後4位"^-?(180|1?[0-7]?d(.d{1,4})?)$"
-
限制整數輸入通路[1,100]"^([1-9]|[1-9]d|100)$"
RegularExpressionValidator控件中常見正規表達式用法 - happmaoo的專欄 - CSDN部落格blog.csdn.net