PyQt5文本類控制項

2021-02-21 Python數據分析實例

文本類控制項主要用來顯示或者編輯文本信息,PyQt5中文本類控制項主要有Label、LineEdit、TextEdit、SpinBox、DoubleSpinBox、LCDNumber等。

一、Label標籤控制項

主要用於顯示用戶不能編輯的文本,標識窗體上的對象如給文本框、列表框添加描述信息。對應PyQt5中QLabel類。直接在Qt Designer設計工具的屬性編輯器中設置

1、設置標籤文本,設置text屬性;

        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(30, 30, 314, 81))
        self.label.setText("標題")

2、設置標籤文本對齊方式,用alignment屬性,Horizontal用來設置標籤文本水平對齊方式,可選AlignLeft左對齊,AlignHCenter水平居中對齊,AlignRight右對齊,AlignJustify兩端對齊。同理,Verrtical用來設置標籤文本垂直對齊方式,可選Align Top頂部對齊,AlignVCenter垂直居中對齊,AlignBottom底部對齊。

# 設置文本對齊方式代碼
self.label.setAlignment(QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)

3、設置文本換行顯示,標籤寬度不足,系統默認顯示部分文字,這種情景下,可設置標籤中文本換行顯示。wordWrap屬性複選框選中即可。

# # 設置長文本,並換行顯示代碼
self.label.setText("Python數據分析實例每日分享,從菜鳥到大神")
self.label.setWordWrap(True)

4、為標籤設置超連結,在QLabel類的setText()方法使用HTML中<a>標籤設置超連結文本,然後將Label標籤中的setOpenExternalLinks()

方法設置成True。

# 設置超連結
self.label.setText("<a href='https://www.baidu.com'>百度</a>")
self.label.setOpenExternalLinks(True) #允許訪問超連結

5、為Label標籤設置圖片,用到setPixmap()方法,該方法需要QPixmap對象,表示圖標對象。

from PyQt5.QtGui import QPixmap # 導入QPixmap類
self.label.setPixmap(QPixmap('test.png')) # 為label設置圖片

6、獲取標籤文本,使用QLabel類的text()方法,self.label.text().

二、LineEdit單行文本框

該控制項可以輸入單行字符串

方法
參數描述
setAlignment()

按固定值方式對齊文本:

1、Qt.AlignLeft,水平方向靠左對齊

2、Qt.AlignRight,水平方向靠右對齊

3、Qt.AlignCenter,水平方向居中對齊

4、Qt.AlignJustify,水平方向調整間距兩端對齊

5、Qt.AlignTop,垂直方向靠上對齊

6、Qt.AlignBottom,垂直方向靠下對齊

7、Qt.AlignVCenter,垂直方向居中對齊

clear()
清除文本框內容

setEchoMode()

設置文本框顯示格式

1、QLineEdit.Normal

,正常顯示所輸入的字符,默認

2、QLineEdit.NoEcho,不顯示任何輸入的字符,常用於密碼類型的輸入

3、QLineEdit.Password,顯示與平臺相關的密碼掩碼字符,而不是實際輸入

4、QLineEdit.PasswordEchoOnEdit,編輯時顯示字符,顯示密碼類型輸入

setPlaceholderText()
設置文本框浮顯文字
setMaxLength()
設置文本框所允許輸入的最大字符數
setReadOnly()
設置文本框只讀
setText()
設置文本框內容
Text()
返回文本框內容
setDragEnabled()
設置文本框是否接受拖動
selectAll()
全選
setFocus()
得到焦點
setInputMask()

設置掩碼,掩碼由掩碼字符和分隔符字符串組成,後面可以跟一個分號和空白字符。

1、日期掩碼:0000-00-00

2、時間掩碼:00:00:00

3、序列號掩碼:>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#

setValidator()

設置文本框驗證器,限制任意可能輸入的文本。可選校驗器:

1、QIntValidator,限制輸入整數

2、QDoubleValidator,限制輸入浮點數

3、QRegexpValidator,檢查輸入是否符合正則表達式

QLineEdit類常用信號

信號
說明
selectionChanged
只要選擇改變了,發射信號
textChanged
當修改文本內容時,發射信號
editingFinished
當編輯結束時,發射信號
示例:QLineEdit綜合示例

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QFormLayout
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示例")
        #表單布局
        formlayout = QFormLayout()
        pNamelLineEdit = QLineEdit()
        pNormalLineEdit = QLineEdit()
        pNoEchoLineEdit = QLineEdit()
        pPasswordLineEdit = QLineEdit()
        pPasswordEchoOnEditLineEdit = QLineEdit()

        formlayout.addRow("用戶名", pNamelLineEdit)
        formlayout.addRow("Normal", pNormalLineEdit)
        formlayout.addRow("NoEcho", pNoEchoLineEdit)
        formlayout.addRow("Password", pPasswordLineEdit)
        formlayout.addRow("PasswordEchoOnEdit", pPasswordEchoOnEditLineEdit)

        #設置文本框浮現文字
        pNamelLineEdit.setPlaceholderText("請輸入用戶名")
        pNormalLineEdit.setPlaceholderText("Normal")
        pNoEchoLineEdit.setPlaceholderText("NoEcho")
        pPasswordLineEdit.setPlaceholderText("Password")
        pPasswordEchoOnEditLineEdit.setPlaceholderText("PasswordEchoOnEdit")

        # 設置文本框顯示效果
        pNamelLineEdit.setEchoMode(QLineEdit.Normal)
        pNormalLineEdit.setEchoMode(QLineEdit.Normal)
        pNoEchoLineEdit.setEchoMode(QLineEdit.NoEcho)
        pPasswordLineEdit.setEchoMode(QLineEdit.Password)
        pPasswordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit)

        #####驗證器設置

        # #整數型範圍,控制只能輸入8位數字
        # pIntValidator=QIntValidator(self)
        # pIntValidator.setRange(10000000,99999999)
        #
        # #浮點型,小數點後兩位
        # pDoubleValidator=QDoubleValidator(self)
        # pDoubleValidator.setRange(0,1)
        # pDoubleValidator.setDecimals(2)

        #字母和數字組合
        reg=QRegExp("[a-zA-Z0-9]+$")
        pRegexpValidator=QRegExpValidator(self)
        pRegexpValidator.setRegExp(reg)

        #設置驗證器
        pPasswordLineEdit.setValidator(pRegexpValidator)

        ####限制用戶輸入還可以輸入掩碼,常見有IP位址、MAC地址、日期、許可證件等。
        pNormalLineEdit.setInputMask("0000-00-00")  #日期掩碼
        # pNormalLineEdit.setInputMask("000.000.000.000;_")  #數字掩碼
        # pNormalLineEdit.setInputMask("HH:HH:HH:HH:HH:HH;_") #MAC掩碼
        # pNormalLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#") #許可證件掩碼


        self.setLayout(formlayout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = lineEditDemo()
    win.show()
    sys.exit(app.exec_())


如果需要輸入多行字符串,則使用QTextEdit類。當文本內容超出控制項顯示範圍時,顯示垂直滾動條,還支持顯示HTML網頁。

方法
說明
setPlainText()
設置文本內容
toPlainText()
獲取文本內容
setTextColor()
設置文本顏色如紅色QtGUI.QColor(255,0,0)
setTextBackgroundColor()
設置文本背景顏色
setHtml()
設置HTML文檔內容
toHtml()
獲取HTML文檔內容setWordWrapMode()
設置自動換行
clear()
清除所有內容

示例:QTextEdit示例

from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QVBoxLayout, QPushButton
import sys

class TextEditDemo(QWidget):
    def __init__(self, parent=None):
        super(TextEditDemo, self).__init__(parent)
        self.setWindowTitle("QTextEdit 例子")
        self.resize(300, 270)
        self.textEdit = QTextEdit()
        self.btnPress1 = QPushButton("顯示文本")
        self.btnPress2 = QPushButton("顯示HTML")
        layout = QVBoxLayout()
        layout.addWidget(self.textEdit)
        layout.addWidget(self.btnPress1)
        layout.addWidget(self.btnPress2)
        self.setLayout(layout)
        self.btnPress1.clicked.connect(self.btnPress1_Clicked)
        self.btnPress2.clicked.connect(self.btnPress2_Clicked)

    def btnPress1_Clicked(self):
        self.textEdit.setPlainText("Hello PyQt5!\n點擊按鈕")

    def btnPress2_Clicked(self):
        self.textEdit.setHtml("<font color='blue' size='8'><red>Hello PyQt5!\n點擊按鈕。</font>")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = TextEditDemo()
    win.show()
    sys.exit(app.exec_())

三、SpinBox整數和DoubleSpinBox小數選擇控制項


SpinBox是一個整數數字選擇控制項,提供一對上下箭頭,用戶可以單擊選擇數值,也可直接輸入。

方法
說明
setValue()
設置控制項當前值
setMaximum()
設置最大值
setMinimum()
設置最小值
setRange()
設置取值範圍 
setSingleStep()
單擊上下箭頭時步長值
value()
獲取控制項的值

DoubleSpinBox類似SpinBox,區別在於保留小數。該控制項提供setDecimals()方法,用來設置小數位數。

四、LCDNumber液晶數字顯示控制項

顯示液晶數字,對應PyQt5中QLCDNumber類。

setSegmentStyle()
設置顯示樣式,3種樣式:OutLine、Filled和Flat
value()
獲取顯示數值

#關鍵代碼
from PyQt5 import QtCore, QtGui, QtWidgets
self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber.setGeometry(QtCore.QRect(20, 40, 160, 40))
self.lcdNumber.setDigitCount(7)                  # 設置最大顯示7位數字
self.lcdNumber.setMode(QtWidgets.QLCDNumber.Dec) # 設置默認以十進位顯示數字
self.lcdNumber.setSegmentStyle(QtWidgets.QLCDNumber.Flat) # 設置數字顯示屏的顯示樣式
self.lcdNumber.setObjectName("lcdNumber")

相關焦點

  • PyQt5按鈕類控制項
    一、PushButton:按鈕控制項PushButton是PyQt5中最常用的控制項,允許用戶通過單擊來執行操作。可以顯示文本,也可以顯圖像,通常通過文本來描述執行的動作。RadioButton是單選按鈕控制項,提供一組可供選擇的按鈕和文本標籤,當用戶選擇某單選按鈕時,同一組的其他按鈕不能同時選定。
  • Python界面編程之按鈕類控制項的使用,PyQt5之QPushButton控制項詳解
    前面內容我們介紹了PyQt5常見的文本類控制項和標籤類控制項的使用。其實,它是PyQt5中其他按鈕的基類,我們知道的一些具有按鈕功能的控制項基本都是它的派生類(比如:單選框、複選框等)。類中都有所涉及。創建四個按鈕控制項,然後處理信號事件,列印輸出那些按鈕被單擊了。
  • python高級進階 002第一個pyqt5程序
    知識回顧:1.anaconda3的安裝與配置2.開發步驟:pydesigner->pyuic->手工創建代碼調用生成的類本期知識視頻教程以下 ,我們對生成代碼知識點簡要解析:界面的生成基於PyQt5庫庫來自於pip管道下載命令,舉例pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simplesys模塊負責系統文件等操作模塊QtWidgets是所有qt控制項中的基類。QApplication簡單理解成程序的進程,代碼實例化為app這個對象。
  • 盤點界面編程中那些常用控制項,詳解PyQt5中標籤控制項QLabel的使用
    歡迎大家關注QLabel控制項是PyQt中一個常用的控制項,它不僅可以作為一個佔位符顯示不可編輯的文本或圖片(展示GIF動畫圖片),還可以被用作提示標記為其他控制項;一些純文本、連結或富文本可以顯示在如何給控制項貼上標籤?QLabel類先來看下QLabel類的父類有哪些?
  • Python界面編程之PyQt5基礎控制項介紹,QSlider滑動條控制項使用詳解
    前幾篇內容我們了解了使用Python中PyQt5庫進行GUI程序設計時,常用的幾種控制項類。比如:標籤QLabel(參見盤點界面編程中那些常用控制項,詳解PyQt5中標籤控制項QLabel的使用)單行文本QLineEdit(參見Python界面編程之PyQt常見控制項展示,QLineEdit文本框類使用詳解)多行文本QTextEdit(參見Python界面編程之PyQt常見控制項展示,QTextEdit文本框類使用詳解)按鈕QPushButton(參見Python用PyQt5設計漂亮界面之按鈕類控制項的使用
  • Python界面編程之PyQt5常見控制項應用展示,單選鈕和複選鈕使用詳解
    前幾篇內容,我們詳細介紹了Python中PyQt5庫中一些常用的控制項類。一大波複習資料送給大家Python用PyQt5設計漂亮界面之按鈕類控制項的使用,QPushButton詳解Python界面編程之PyQt常見控制項展示,QTextEdit文本框類使用詳解Python
  • Python用PyQt5實現多種彈出消息框,QMessageBox控制項使用詳解
    前面內容我們介紹了PyQt5中常用控制項,並針對控制項給出了詳細的使用方法和一些典型的例子。今天,我們繼續來了解PyQt5中的常用控制項(QMessageBox)消息對話框控制項。消息對話框QMessageBox是彈出對話框類控制項的一種。跟前面的思路一樣,我們先來了解它的類繼承結構,然後詳細探討QMessageBox的使用。
  • Python高級進階 007 pyqt5消息盒子QMessageBox
    一、知識回顧1.使用類進行pyqt5的gui開發封裝2.使用setGeometry函數:大小、位置3.掌握類的繼承與內部調用本節知識視頻教程以下開始文字講解:一、Pyqt5界面基本寫法目標效果點擊按鈕,出現消息選擇框,處理消息選擇框的點擊結果效果圖二、基礎的類封裝代碼
  • Python用PyQt5創建時間日期控制項,Qt圖形界面編程之QDateTimeEdit
    繪製多彩隨機散點圖,基本控制項之QPainter使用詳解Qt圖形界面編程之QFileDialog類,Python用PyQt5製作文件對話框Python界面編程之PyQt5基礎控制項介紹,QSlider滑動條控制項使用詳解今天,我們來詳細了解一個比日曆控制項功能更加豐富的QDateTimeEdit控制項。
  • PyQt5學習記錄:滑塊控制項QSlider
    滑塊控制項有兩種:垂直的、水平的知識點:1、創建self.slider = QSlider(Qt.Horizontal或Qt.Vertical)2、設置最小值self.slider.setMinimum(0)3、
  • Python用PyQt5製作窗體狀態欄,基本控制項QStatusBar使用方法詳解
    前面內容,我們詳細了解了PyQt5中常用的一些控制項類設計界面,如何正確顯示一幅圖片,QPixmap控制項詳解另外,我們詳細介紹了QMainWindow窗體的一些基本控制項為界面添加功能豐富的工具箱,Python中PyQt5之QToolBar類的使用Python用PyQt5設計界面之菜單製作,QMenuBar詳解
  • Python用PyQt5設計界面,如何正確顯示一幅圖片,QPixmap控制項詳解
    前期回顧擁有漂亮的筆刷才能繪製多彩界面,PythonPyQt5中QPen和QBrush類Python用PyQt5繪製多彩隨機散點圖,基本控制項之QPainter使用詳解Python用PyQt5製作顏色對話框
  • Python界面如何漂亮的展示樹形結構,PyQt5控制項之QTreeWidget詳解
    前面內容,我們介紹了關於PyQt5的一些常用高級控制項的使用,為了更好的便於大家理解,我們通過一些案例進行了講解。結合PyQt5的QTabWidget類Python之PyQt5編程,用代碼設置剪切板內容,QClipboard類的使用Python用PyQt5製作窗體狀態欄,基本控制項QStatusBar使用方法詳解今天,我們來介紹另外一種常用的高級控制項-QTreeWidget(樹形控制項)。相信大家對這個也不會陌生。看下圖。
  • Excel 控制項【窗體控制項】和【ActiveX控制項】使用基礎教程
    【窗體】調出的是【窗體控制項】的工具欄、【控制項工具箱】調出的是【ActiveX控制項】的工具欄。  第三,excel 控制項第一個實例:  以【微調項】為例(【微調項】Excel2007改為【數值調節鈕】),介紹它在兩種控制項的製作方法。   單擊【窗體控制項】中的【微調項】控制項,然後在表格上拖動一個區域(區域大小決定控制項的大小)。
  • 設計規範 | 詳解組件控制項結構體系:網絡異常類
    網絡切換:警示框、界面內嵌斷網情況:整頁提示、佔位符、toast提示、警示框提示、界面內嵌、tips提示弱網情況:整頁提示、佔位符、界面內嵌、tips提示依舊附上一張腦圖,組件控制項分類(如果單純通過組件控制項
  • Json數據顯示到界面上,用哪個控制項?Python用PyQt5進行界面設計
    前面內容,我們介紹了PyQt5中一個很常用的高級控制項類—QTreeWidget類。樹狀結構Python界面如何漂亮的展示樹形結構,PyQt5控制項之QTreeWidget詳解本篇內容我們不講知識點,只講這個控制項的應用。
  • NET開發-WebForm中Web控制項是伺服器控制項,按鈕、標籤控制項如何使用
    Web控制項介紹在.NET Web應用程式中,有WebForm和MVC這2種UI框架, 在WebForm中,其控制項分為Web伺服器控制項和HTML控制項(或Web客戶端控制項)。1) WEB伺服器控制項:微軟為了實現前端頁面與後端代碼的分離,將HTML表單標記進行了封裝,封裝好的控制項都是以<asp:開頭,並且作為Web伺服器控制項出現,Web伺服器控制項是指在伺服器端進行處理的控制項,在伺服器端處理後都會轉換為標準的HTML標記返回給客戶端。
  • 好課分享:PyQt5基礎入門
    控制項的輸入(校驗器).mp4  62.90M|   |   ├──課時034.使用掩碼限制QLineEdit控制項的輸入.mp4  48.69M|   |   ├──課時035.QLineEdit控制項綜合案例.mp4  60.63M|   |   ├──課時036.使用QTextEdit控制項輸入多行文本.mp4  59.52M|   |   ├─
  • word控制項技巧:掌握這個技巧向高手靠近
     複選框內容控制項複選框是一種可同時選中多項的控制項,點擊複選框,可實現多個選項複選,是表單中最為常見的選項形式。Word中如何添加呢?具體操作方法如下:(1)點擊【開發工具】-【控制項】-【複選框內容控制項】按鈕,即可添加一個複選框內容控制項。
  • word控制項技巧:掌握這個技巧向高手靠近
    其實Word為我們提供了相應的控制項,通過控制項就能實現圖中的效果。Word控制項位於「開發工具」選項卡中,但在默認情況下,Word 是不顯示「開發工具」選項卡的。因此,首先我們應該將其顯示出來。下拉菜單控制項下拉菜單填表方式,許多人覺得只會出現在Excel中,但其實Word同樣也能實現,具體操作方法如下:(1)點擊【開發工具】-【控制項】-【下拉列表內容控制項】按鈕。