Pythpn入門進階系列 - 構建一個PyQt應用程序示例
PyQt是一個非常有用的Python庫,用于開發圖形化應用程序。它使用C++語言開發的Python Qt GUI框架。可以通過在Python腳本中導入PyQt庫或使用PyQt的Qt設計器模塊來開發應用程序的圖形用戶界面。如果您不想編寫代碼來實現應用程序的GUI,那么最好安裝Qt Designer并使用它創建一個圖形用戶界面。本教程將逐步介紹用Python創建PyQt應用程序的方法。
創建一個簡單的PyQt應用程序來求和:
本教程的本節展示了實現一個簡單的PyQt應用程序來計算兩個數字之和的步驟。在這里,數字值將使用文本框從用戶處獲取,在執行腳本之后,單擊按鈕后將顯示值的總和。在這里創建了一個帶有必要字段的窗口來構建應用程序的設計;接下來,使用Python腳本計算和。
步驟:
步驟1:創建PyQt應用程序對象
為了設計本教程的PyQt應用程序,您必須導入所需的Python模塊。要設計這個應用程序,它將需要兩個標簽、兩個文本框和一個按鈕。
設計應用程序需要QApplication、QMainWindow、QLabel、QTextEdit和QPushButton模塊。
在腳本的開頭添加以下行以使用這些模塊。
- # 導入必要的模塊
- from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QTextEdit, QPushButton
添加以下幾行以創建應用程序對象并啟動事件循環。現在執行腳本后將不會出現任何內容。
- # 創建對象PyQt應用程序
- app = QApplication([])
- # 啟動事件循環以執行應用程序
- app.exec()
步驟2:創建類和窗口對象
創建類以在此步驟中添加必要的對象以設計應用程序窗口。
添加以下行以創建帶有窗口對象的類。此處,設置了窗口的標題,大小和位置。接下來,調用show()方法以將窗口顯示為輸出。
- class addition(QMainWindow):
- def __init__(self):
- # 調用父構造函數
- super().__init__()
- # 設置窗口標題
- self.setWindowTitle("PyQt加法應用 - Linux迷 www.linuxmi.com")
- # 設置窗口的寬度和高度
- self.resize(850, 500)
- # 移動窗口的位置
- self.move(800, 400)
- # 顯示窗口
- self.show()
您必須在運行事件循環之前創建類的對象。
- # 創建窗口對象
- window = addition()
執行腳本后,將出現以下空白窗口。
步驟3:在窗口中添加所需的小部件以進行添加
現在,添加實現應用程序所需的必要對象。在此步驟中,將創建QLabel小部件的三個對象,QTextEdit小部件的兩個對象以及QPushButton小部件的按鈕對象。前兩個標簽對象將用于在文本框之前提供幫助文本。QTextEdit對象將用于從用戶獲取兩個數字值。將使用下一步將創建的事件處理函數創建QPushButton對象,以計算輸入數字的總和。最后一個標簽對象將用于顯示兩個數字的總和。在這里,將為每個對象調用setGeometry()函數以設置對象在窗口中的位置。
- # 為第一個數字創建標簽
- self.lbl1 = QLabel('第一個數字', self)
- self.lbl1.setGeometry(200, 120, 160, 50)
- # 為第一個數字創建文本框
- self.textbox1 = QTextEdit(self)
- self.textbox1.setGeometry(200, 160, 150, 60)
- # 為第二個數字創建標簽
- self.lbl2 = QLabel('第二個數字', self)
- self.lbl2.setGeometry(500, 120, 160, 50)
- # 為第二個數字創建文本框
- self.textbox2 = QTextEdit(self)
- self.textbox2.setGeometry(500, 160, 150, 60)
- # 創建按鈕以計算總和
- self.submit = QPushButton('計算總和', self)
- self.submit.setGeometry(300, 300, 220, 60)
- # 創建標簽以顯示求和結果
- self.lblResult = QLabel('', self)
- self.lblResult.setGeometry(80, 130, 200, 50)
執行腳本后,將顯示以下輸出。在此步驟中未創建任何事件處理程序函數,該函數用于計算數字的總和。因此,如果用戶單擊該按鈕,則不會發生任何事情。
步驟4:創建并調用函數以處理按鈕的click事件
創建一個名為onClicked()的方法,并在附加類中包含以下幾行內容來處理按鈕的click事件。使用int()函數將文本框的值轉換為整數,并將其存儲在num1和num2變量中。接下來,將num1和num2之和存儲在結果變量中。在將值存儲在輸出變量中之前,使用str()函數將num1,num2和結果變量的值轉換為字符串值。第三個標簽對象用于顯示輸出變量的內容。
- def onClicked(self):
- num1 = int(self.textbox1.toPlainText())
- num2 = int(self.textbox2.toPlainText())
- result = num1 + num2
- output = "<p style='color:red'> " + str(num1) + " 加 " + str(num2) + " 等于 " + str(result) + '</p>'
- self.lblResult.setText(output)
在按鈕對象之后的類中添加以下行,以在單擊按鈕時調用onClicked()方法。
- # 單擊按鈕時的調用功能
- self.submit.clicked.connect(self.onClicked)
執行腳本后,如果用戶在文本框中輸入26和500并單擊“計算總和”按鈕,則以下格式化的輸出將顯示在按鈕下方。
總結:
在本教程中,已經從基本內容開始對非常簡單的PyQt應用程序的實現進行了說明,以幫助新的Python用戶。希望用戶在正確完成并理解本教程的步驟之后,能夠設計和創建一個簡單的PyQt應用程序。