加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 總結(jié):
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

用PyQt5做圖形界面(二)文本組件:QLabel、QLineEdit、QTextEdit

2023/02/18
2215
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

今天介紹文本相關(guān)的三個(gè)組件:QLabel、QLineEdit、QTextEdit。

三者的區(qū)別是:QLabel一般用來顯示提示性的文本或者說明,用戶不可以直接修改內(nèi)容。QLineEdit用來收集用戶輸入(單行文本,不能換行)。而QTextEdit用來收集用戶輸入的一大段文字。

需求:

做一個(gè)BUG提交的界面,用戶可以輸入BUG的標(biāo)題和描述,點(diǎn)擊按鈕后,獲取用戶填寫的信息,并顯示在終端里。

分析:

我們先來做一些準(zhǔn)備,提前學(xué)習(xí)幾個(gè)函數(shù)。對(duì)于文本來說,最常用的就“設(shè)置文本”和“獲取文本”。

QLabel和QLineEdit,setText(string)為設(shè)置文本,text()為獲取文本。

而QTextEdit功能較為復(fù)雜,支持純文本模式,也支持富文本模式(即html、插入圖片、設(shè)置不同的格式等)。我們今天只會(huì)用到toPlainText()來獲取QTextEdit的文本。

整理如下:

    QLabel.setText(string) 設(shè)置標(biāo)簽的文本QLineEdit.text() 獲取單行文本框中的文字QTextEdit.toPlainText() 獲取多行文本框中的文字

代碼實(shí)現(xiàn):

在《用PyQt5做圖形界面(一)Hello world》的基礎(chǔ)上,添加幾個(gè)組件:

# BUG標(biāo)題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)

實(shí)現(xiàn)提交按鈕的處理函數(shù)。從QLineEdit和QTextEdit中取出文字,并print出來。

def submit_handle():    bug_title = edit1.text()    bug_description = edit2.toPlainText()    print('Bug title is {},nDescription isn{}'.format(????    bug_title,?????????bug_description))

最后,在界面上創(chuàng)建按鈕,并連接到submit_handle()函數(shù):

button = QPushButton('Submit')button.clicked.connect(submit_handle)vbox.addWidget(button)

效果展示:

總結(jié):

在學(xué)習(xí)和使用pyqt5基本組件時(shí),可以查閱pyqt5的官方類庫(kù)(https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/index.html#module-PySide2.QtWidgets),找到相類組件可操作的函數(shù)列表,并閱讀相關(guān)函數(shù)的說明。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

公眾號(hào)ExASIC號(hào)主,從事數(shù)字IC設(shè)計(jì)10余年,主要分享日常工作中的經(jīng)驗(yàn)和技巧,分享讓工作更輕松。