【pyqt5學習】——QLineEdit控件輸入校驗器Validator、掩碼setInputMask限制輸入、textChanged信號

目錄

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,QRegExpValidator

QIntValidator——整數

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(槽函數)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255395.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255395.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255395.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Call requires API level 3 (current min is 1)

結果出現“Call requires API level 3 (current min is 1): 解決方法: 在工程上點擊右鍵 -> Android Tools -> Clear Lint Markers,即可。轉載于:https://www.cnblogs.com/qianyukun/p/5458331.html

Product文本格式說明

使用txt進行產品信息的說明。 Product文本格式說明 //**************************************************** //產品信息 //固定標識符全部大寫,全部在等號()前面 //****************************************************** PRODUCTTest //…

PyOpenCL圖像處理:Box模糊

為什么80%的碼農都做不了架構師?>>> # -*- coding: utf-8 -*-from __future__ import absolute_import, print_function import numpy as np import pyopencl as cl import cv2 from PIL import Imagedef RoundUp(groupSize, globalSize): r globalSi…

【python bug修復】——Script file ‘D:\softwares_install\Anaconda3\envs\PartTimes\Scripts\pip-scrip

目錄 1、問題描述 2、問題解決 1)下載pip安裝腳本 2) 運行安裝pip腳本 3) 下載庫 1、問題描述 利用pip命令進行庫的安裝時,突然出現這個問題,之前使用還好好的 Script file D:\softwares_install\Anaconda3\envs\P…

項目中的那些事---下載pdf文件

最近做了一個下載pdf文檔的需求&#xff0c;本以為使用HTML5中<a>標簽的屬性download就能簡單搞定&#xff0c;不料IE竟然不支持這一簡單粗暴的H5新特性&#xff0c;而是直接在網頁中打開&#xff0c; 于是各種搜索之后得出以下結論&#xff1a;IE中下載文檔時&#xff0…

MySQL日志分類及性能分析你應該知道的知識

為什么80%的碼農都做不了架構師&#xff1f;>>> MySQL日志記錄了MySQL數據庫日常操作和錯誤信息&#xff0c;MySQL總共有四種類型的日志&#xff0c;通過分析這些日志可以查詢到MySQL的運行情況、用戶操作、錯誤信息等&#xff0c;可以為MySQL的管理和優化提供必要…

利用三個點(trsf)來實現各種規則圖形的實現

在Val3,是使用trsf(x,y,z,rx,ry,rz)來實現三維空間點的位置與方向。 其中第一點和第二點位置很重要&#xff0c;第三點是用來確定方向。根據這三個點先確定一個用戶坐標系。 在這個坐標系中&#xff0c;實現圓&#xff0c;三角形&#xff0c;矩形&#xff0c;腰圓&#xff0c;正…

android基礎組件----Button的使用

按鈕由文本或圖標&#xff08;或文本和一個圖標&#xff09;組成&#xff0c;當用戶觸摸到它時&#xff0c;會發生一些動作。今天我們開始Button的學習。少年的愛情永遠不夠用&#xff0c;一杯酒足以了卻一件心事。 Button的簡要說明 根據你是否想要一個帶有文本的按鈕&#xf…

@Repository、@Service、@Controller 和 @Component

Repository 、Service 、 Controller 、Component 這四個Spring注解 ,用于把加了注解的 類 加入到Spring 容器中管理&#xff0c;節省了xml 的繁重的配置&#xff0c;盡管如此xml 同樣可以實現&#xff08;一般建議先搞懂xml&#xff09;。 Repository Repository注解便屬于最先…

【pyqt5學習】——QTextEdit控件學習:獲取文本、添加文本

目錄 1、QTextEdit控件介紹 2、QTextEdit控件添加文本、添加HTML格式 3、QTextEdit控件獲取文本、獲取HTML格式文本 4、案例 1&#xff09;完整代碼 2&#xff09;效果 1、QTextEdit控件介紹 QTextEdit控件是一個支持多行輸入的輸入框&#xff0c;支持HTML進行格式的設置 2…

空間變化

空間變化 第一種&#xff1a;圓 第二種: 矩形 第三種&#xff1a;正五邊形 第四種:正六邊形 第五種&#xff1a;腰圓 算法&#xff1a; 在規則圖形&#xff08;不包括圓心-直徑法&#xff09;中&#xff0c;等于或者超過三個點。一般的&#xff0c;利用p1,p2,p3來建立一個用戶…

【pyqt5學習】——QAbstractButton學習(普通按鈕QPushButton、工具按鈕QToolButton、單選按鈕QRadioButton、復選框按鈕QCheckBox)

目錄 1、按鈕介紹 2、普通按鈕QPushButton學習 1&#xff09;特殊模式——開關按鈕&#xff08;toggle&#xff09; ①將按鈕設置為可選擇的 ②將按鈕按下 判斷按鈕是否被按下 isChecked() 2&#xff09;給按鈕設置前置圖標setIcon() ?編輯 3&#xff09;按鈕信號 4)完…

java 企業 網站源碼 模版 屏幕自適應 有前后臺 springmvc SSM 生成靜態化

前臺&#xff1a; 支持四套模版&#xff0c; 可以在后臺切換點擊&#xff1a;獲取地址QQ 313596790官網 http://www.fhadmin.org/系統介紹&#xff1a;1.網站后臺采用主流的 SSM 框架 jsp JSTL&#xff0c;網站后臺采用freemaker靜態化模版引擎生成html2.因為是生成的html&…

挖財后端架構簡介

挖財后端技術用的主要是比較大眾的東西&#xff0c;Web容器用Tomcat&#xff0c;框架主要是Spring MVC&#xff0c;也有少量的Play&#xff0c;中間服務層是Dubbo&#xff0c;微容器用Spring Boot&#xff0c;服務注冊這一塊是用ZooKeeper&#xff0c;核心業務開發方式還是圍繞…

【pyqt5學習】——QcomboBox學習

目錄 1、添加條目&#xff1a; 1)逐一添加 2&#xff09;批量添加 3&#xff09;獲取當前選中的索引 4&#xff09;獲取當前選中文本 5&#xff09;根據索引獲取文本 6&#xff09;統計條目總數 7&#xff09;信號——當前選中的索引發生改變currentIndexChanged() 2、…

vSphere Client 編輯虛擬機屬性的問題

vSphere Client 編輯虛擬機屬性的問題 編輯虛擬機屬性的時候&#xff0c; 出現&#xff1a; vpxclient.vmconfig.cpuid 初始值設置異常之類的&#xff0c;重置了&#xff0c; 并將注冊表中的所有vmvare 相關鍵值刪除了&#xff0c; 還是一樣的。。 后面參照https://kb.vmware.c…

Val編程-系統架構

利用Val可以編寫相對大型軟件。 界面書寫&#xff0c;運動軌跡規劃&#xff0c;外部通訊&#xff0c;進程交互&#xff0c;文本讀寫.... GlobalData可以利用一個庫來作為一個公用庫&#xff0c;實現各個庫的數據交互。 PublicFunc書寫基本的通用函數來作為基本函數&#xff0c;…

poj 1256 Anagram—next_permutation的神奇應用

題意&#xff1a;給你一條字符串&#xff0c;讓你輸出字符串中字符的全排列&#xff0c;輸出的順序要按它給的奇葩的字典序。 題解&#xff1a;要輸出全排列&#xff0c;暴力dfs可以過&#xff0c;但要注意題目的字典序以及相同字符的情況。如果用next_permutation()處理可以簡…

【pyqt5學習】—— 滑動條Qslider、計數器QSpinBox學習

目錄 1、滑動條QSlider 1)常用屬性 2&#xff09;實例——利用滑動條來實現字體大小的修改 ?編輯 2、計數器QSpinBox 1&#xff09;屬性方法 2&#xff09;實例 1、滑動條QSlider 1)常用屬性 self.slider QSlider(Qt.Horizontal)# 設置最小值self.slider.setMinimum(2)…

shell常用命令之curl: -w,–write-out參數詳解

顧名思義&#xff0c;write-out的作用就是輸出點什么。curl的-w參數用于在一次完整且成功的操作后輸出指定格式的內容到標準輸出。 輸出格式由普通字符串和任意數量的變量組成&#xff0c;輸出變量需要按照%{variable_name}的格式&#xff0c;如果需要輸出%&#xff0c;double一…