今天介紹文本相關的三個組件:QLabel、QLineEdit、QTextEdit。
三者的區別是:QLabel一般用來顯示提示性的文本或者說明,用戶不可以直接修改內容。QLineEdit用來收集用戶輸入(單行文本,不能換行)。而QTextEdit用來收集用戶輸入的一大段文字。
需求:
做一個BUG提交的界面,用戶可以輸入BUG的標題和描述,點擊按鈕后,獲取用戶填寫的信息,并顯示在終端里。
分析:
我們先來做一些準備,提前學習幾個函數。對于文本來說,最常用的就“設置文本”和“獲取文本”。
QLabel和QLineEdit,setText(string)為設置文本,text()為獲取文本。
而QTextEdit功能較為復雜,支持純文本模式,也支持富文本模式(即html、插入圖片、設置不同的格式等)。我們今天只會用到toPlainText()來獲取QTextEdit的文本。
整理如下:
- QLabel.setText(string) 設置標簽的文本
- QLineEdit.text() 獲取單行文本框中的文字
- QTextEdit.toPlainText() 獲取多行文本框中的文字
代碼實現:
在《[用PyQt5做圖形界面(一)Hello world]》的基礎上,添加幾個組件:
# BUG標題
label1 = QLabel()
label1.setText('Bug Title:')
vbox.addWidget(label1)
edit1 = QLineEdit()
vbox.addWidget(edit1)
# BUG描述
label2 = QLabel()
label2.setText('Bug Description:')
vbox.addWidget(label2)
edit2 = QTextEdit()
vbox.addWidget(edit2)
實現提交按鈕的處理函數。從QLineEdit和QTextEdit中取出文字,并print出來。
def submit_handle():
bug_title = edit1.text()
bug_description = edit2.toPlainText()
print('Bug title is {},\\nDescription is\\n{}'.format(
bug_title,
bug_description))
最后,在界面上創建按鈕,并連接到submit_handle()函數:
button = QPushButton('Submit')
button.clicked.connect(submit_handle)
vbox.addWidget(button)
-
編程
+關注
關注
88文章
3689瀏覽量
95349 -
BUG
+關注
關注
0文章
156瀏覽量
16032 -
pyqt5
+關注
關注
0文章
25瀏覽量
3526
發布評論請先 登錄
使用PyQt5自動初始化OpenVINO?環境出現報錯怎么解決?
【Firefly RK3399試用體驗】第二篇:PyQt5大戰點燈
利用PyQt5編輯軟件界面的簡單步驟
如何使用Python配合PyQT5模塊來開發圖形化應用程序
基于UC/OSII的圖形界面系統的設計與應用
PyQt5的中文教程電子書免費下載

用PyQt5做圖形界面(一)Hello world
PyQT5中的QPainter類支持與圖元支持實現圖形繪制
請問PyQT5是如何構建YOLOv8界面應用程序的
如何用PyQt5做圖形界面(一)

Python上位機軟件圖形界面實戰——PyQt

使用pycharm開發上位機配置pyqt5的環境

基于PyQT5與ONNXRUNTIME實現風格遷移應用

評論