天天看點

.net上邊一個大圖檔下邊文字可選中的控件_PyQt5控件:單行文本輸入框(QLineEdit)

.net上邊一個大圖檔下邊文字可選中的控件_PyQt5控件:單行文本輸入框(QLineEdit)

利用QT設計師學習PyQt5控件

在Qt中,QLineEdit是文本編輯框控件,是比較基礎且常用的控件的之一
.net上邊一個大圖檔下邊文字可選中的控件_PyQt5控件:單行文本輸入框(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

設定掩碼:

下表列出了輸入掩碼的占位符和字面字元,并說明其如何控制資料輸入

  • A

    :ASCII字母字元是必須輸入的(A-Z,a-z)
  • a

    :ASCII字母字元是允許輸入的,但不是必須輸入的
  • N

    :ASCII字母字元是必須輸入的(A-Z,a-z,0-9
  • n

    :ASCII字母字元是允許輸入的,但不是必須輸入的
  • X

    :任何字元都是必須輸入
  • x

    :任何字元都是允許輸入的,但不是必須輸入的
  • 9

    :ASCII數字字元是必須輸入的(0-9)
  • :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;0

    日期,空白字元是0
  • >AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#

    許可證号,所有字母都轉換為大寫
.net上邊一個大圖檔下邊文字可選中的控件_PyQt5控件:單行文本輸入框(QLineEdit)
在QT設計師中切換信号模式,選中文本框拖動信号,彈出信号視窗
.net上邊一個大圖檔下邊文字可選中的控件_PyQt5控件:單行文本輸入框(QLineEdit)

QLineEdit

信号
  • cursorPositionChanged(int,int)

    光标位置發生改變時發出的信号,并向外界傳遞位置(老的光标位置,新的光标位置)
  • editingFinished()

    結束編輯時發出的信号(焦點離開:Enter鍵,Tab鍵,滑鼠都可以觸發)
  • returnPressed()

    按下Enter鍵時發出的信号
  • 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|1?[0-7]?d(.d{1,4})?)$"

    限制浮點數輸入範圍為[-180,180],小數位後4位
  • "^([1-9]|[1-9]d|100)$"

    限制整數輸入通路[1,100]
下面這個網址有比較詳細正則例子,請查閱!

RegularExpressionValidator控件中常見正規表達式用法 - happmaoo的專欄 - CSDN部落格​blog.csdn.net

元宵節快樂