QLineEdit和QTextEdit都是文本框類,QLineEdit類是單行文本框控件,可以輸入單行字符串。QTextEdit類是多行文本框控件,可以顯示多行文本內(nèi)容,當(dāng)文本內(nèi)容超出控件顯示范圍時,可以顯示水平個垂直滾動條。QTextEdit不僅可以顯示文本還可以顯示HTML文檔。
來看看兩者的使用方法和區(qū)別吧~
1、QLineEdit文本框類QLineEdit類中的常用方法如下表所示:
定義輸入掩碼的字符,下表中列出了輸入掩碼的占位符和字面字符,并說明其如何控制數(shù)據(jù)輸入。
掩碼由掩碼字符和分隔符字符串組成,后面可以跟一個分號和空白字符,空白字符在編輯后會從文本中刪除的。掩碼示例如下表所示:
QLineEdit類中的常用信號如下表所示:?
通過一個簡單案例了解QLineEdit文本框類的使用吧,效果如下所示:
示例中,演示了QLineEdit文本框類常用方法:
- 第1個文本框e1,顯示文本使用自定義字體、右對齊、允許輸入整數(shù)。
- 第2個文本框e2,限制輸入小數(shù)點(diǎn)后兩位。
- 第3個文本框e3,需要一個輸入掩碼應(yīng)用于電話號碼。
- 第4個文本框e4,需要發(fā)射信號textChanged,連接到槽函數(shù)textchanged()。
- 第5個文本框e6,設(shè)置顯示模式EchoMode為Password,需要發(fā)射editingfinished信號連接到槽函數(shù)enterPress(),一旦用戶按下了回車鍵,該函數(shù)就會被執(zhí)行。
- 第6個文本框e6,顯示一個默認(rèn)的文本,不能編輯,設(shè)置為只讀的。
實(shí)現(xiàn)代碼如下所示:
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不脫發(fā)的程序猿")
e6.setReadOnly(True)
flo.addRow("Read Only",e6 )
e5.editingFinished.connect( self.enterPress )
self.setLayout(flo)
self.setWindowTitle("QLineEdit例子")
def textchanged(self, text):
print( "輸入的內(nèi)容為: "+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信號連接到槽函數(shù)btn_btnPress1_Clicked()。
self.btnPress1.clicked.connect(self.btnPress1_Clicked)
當(dāng)按鈕btnPress1被按下時會觸發(fā)clicked信號,然后調(diào)用btnPress_Clicked(),最后把文本內(nèi)容顯示到textEdit控件中。同理,當(dāng)單擊btnPress2按鈕后,將改變QTextEdit控件textEdit的顯示內(nèi)容為HTML文檔。
實(shí)現(xiàn)代碼如下所示:
from PyQt5.QtWidgets import QApplication, QWidget , , 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不脫發(fā)的程序猿 點(diǎn)擊按鈕")
def btnPress2_Clicked(self):
self.textEdit.setHtml("<font color='red' size='6'><red>公眾號:美男子玩編程 點(diǎn)擊按鈕。</font>")
if __name__ == "__main__":
app = QApplication(sys.argv)
win = TextEditDemo()
win.show()
sys.exit(app.exec_())
本文摘自 :https://blog.51cto.com/H