Python Qt GUI设计:QLineEdit和QTextEdit文本框类(基础篇—13)
目錄
1、QLineEdit文本框類
2、QTextEdit文本框類
QLineEdit和QTextEdit都是文本框類,QLineEdit類是單行文本框控件,可以輸入單行字符串。QTextEdit類是多行文本框控件,可以顯示多行文本內容,當文本內容超出控件顯示范圍時,可以顯示水平個垂直滾動條。QTextEdit不僅可以顯示文本還可以顯示HTML文檔。
來看看兩者的使用方法和區別吧~
1、QLineEdit文本框類
QLineEdit類中的常用方法如下表所示:
定義輸入掩碼的字符,下表中列出了輸入掩碼的占位符和字面字符,并說明其如何控制數據輸入。
掩碼由掩碼字符和分隔符字符串組成,后面可以跟一個分號和空白字符,空白字符在編輯后會從文本中刪除的。掩碼示例如下表所示:
QLineEdit類中的常用信號如下表所示:?
通過一個簡單案例了解QLineEdit文本框類的使用吧,效果如下所示:
示例中,演示了QLineEdit文本框類常用方法:
- 第1個文本框e1,顯示文本使用自定義字體、右對齊、允許輸入整數。
- 第2個文本框e2,限制輸入小數點后兩位。
- 第3個文本框e3,需要一個輸入掩碼應用于電話號碼。
- 第4個文本框e4,需要發射信號textChanged,連接到槽函數textchanged()。
- 第5個文本框e6,設置顯示模式EchoMode為Password,需要發射editingfinished信號連接到槽函數enterPress(),一旦用戶按下了回車鍵,該函數就會被執行。
- 第6個文本框e6,顯示一個默認的文本,不能編輯,設置為只讀的。
實現代碼如下所示:
from PyQt5.QtWidgets import QApplication, QLineEdit , QWidget , QFormLayout
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)e1 = QLineEdit()e1.setValidator( QIntValidator() )e1.setMaxLength(4)e1.setAlignment( Qt.AlignRight )e1.setFont( QFont("Arial",20))e2 = QLineEdit()e2.setValidator( QDoubleValidator(0.99,99.99,2))flo = QFormLayout()flo.addRow("integer validator", e1)flo.addRow("Double validator",e2)e3 = QLineEdit()e3.setInputMask('+99_9999_999999')flo.addRow("Input Mask",e3)e4 = QLineEdit()e4.textChanged.connect( self.textchanged )flo.addRow("Text changed",e4)e5 = QLineEdit()e5.setEchoMode( QLineEdit.Password )flo.addRow("Password",e5)e6 = QLineEdit("CSDN不脫發的程序猿")e6.setReadOnly(True)flo.addRow("Read Only",e6 )e5.editingFinished.connect( self.enterPress )self.setLayout(flo)self.setWindowTitle("QLineEdit例子")def textchanged(self, text):print( "輸入的內容為: "+text )def enterPress( self ):print( "已輸入值" )if __name__ == "__main__": app = QApplication(sys.argv)win = lineEditDemo() win.show() sys.exit(app.exec_())
2、QTextEdit文本框類
QTextEdit類中的常用方法如下表所示:
通過一個簡單案例了解QTextEdit文本框類的使用吧,效果如下所示:
示例中使用了一個QTextEdit控件:textEdit和兩個QPushButton控件:btnPress1、btnPress2。
以下代碼將按鈕btnPress1的clicked信號連接到槽函數btn_btnPress1_Clicked()。
self.btnPress1.clicked.connect(self.btnPress1_Clicked)
當按鈕btnPress1被按下時會觸發clicked信號,然后調用btnPress_Clicked(),最后把文本內容顯示到textEdit控件中。同理,當單擊btnPress2按鈕后,將改變QTextEdit控件textEdit的顯示內容為HTML文檔。
實現代碼如下所示:
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("CSDN不脫發的程序猿\n點擊按鈕")def btnPress2_Clicked(self):self.textEdit.setHtml("<font color='red' size='6'><red>公眾號:美男子玩編程\n點擊按鈕。</font>")if __name__ == "__main__": app = QApplication(sys.argv)win = TextEditDemo() win.show() sys.exit(app.exec_())
總結
以上是生活随笔為你收集整理的Python Qt GUI设计:QLineEdit和QTextEdit文本框类(基础篇—13)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python Qt GUI设计:QPus
- 下一篇: Python Qt GUI设计:QCom