本文介紹Python使用PyQt5進行界面程序編寫的一個簡單例程。
參考博客http://blog.csdn.net/u013401853/article/details/54581512,參考的博客寫的更爲詳細一些。
容易出現下面問題:
解決Pycharm無法導入包問題 Unresolved reference
- 軟件環境準備
PyQt5只有在Python3.5及其以上版本中才能使用,安裝方法在Python庫安裝這篇博客中有說明。此外,需要安裝Qt的開發環境,需要使用其中的工具--QtCreator或者Designer。PyQt5的主要作用就是使得Python調用使用QT設計的ui界面進行編程,如此這般就可將QT的界面設計便捷和Python強大的優點結合起來。
補充:(可選,但是建議配置,使用起來更方便)
爲了方便在PyCharm中更方便的使用PyQt5,需要在PyCharm中配置PyQt5,包括Qt的Designer以及PyQt5自帶的pyuic5工具。
配置過程見:
- Qt界面設計
在Qt的界面開發開發中,設計界面可以使用Qt Creator或者Designer,本質是一樣的,本文中使用Designer。
新建一個Main Window項目,保存爲testPyQt5.ui(參考博客中建立的是Widget項目)
在界面上添加一個pushButton,名爲btn,添加一個testEdit,名爲textEdit
通過上圖中的來爲pushButton添加一個槽函數btn_click(),該圖標就是信號和槽編輯器。
進入信號槽編輯模式後,左鍵按住pushButton然後往外拖到一個地方鬆開,便會出現下圖中的樣子
上圖中左邊爲名爲btn的pushButton的信號,選中clicked()信號,右邊即爲與該信號綁定的槽函數。
由於該信號暫時並沒與任何槽函數相連接,所以右邊的槽函數框中是空白的。此時就需要自己新建一個槽函數了。點擊編輯,會彈出一個界面中,點擊槽對應的框下面的 ,會生成一個函數,名字修改爲btn_click()
然後確認。在返回的界面中,在槽函數那一欄中選擇剛纔自定義的btn_click()函數
確認並保存。然後將testPyQt5.ui文件放到自己的項目目錄下。
- Qt的 ui文件轉化爲python文件
PyQt5提供了將ui文件轉化爲python文件的工具--pyuic5,在python安裝目錄下的scripts文件夾下,記得將pyuic5所在的路徑添加到系統環境變量中。
進入項目目錄下(前一步中已將testPyQt5.ui放到項目目錄下)
輸入:
pyuic5 testPyQt5.ui -o testPyQt5.py
便會在當前目錄下生成名爲testPyQt5.py的文件。如果前面自PyCharm中配置了PyQt5,就可以直接郵件testPyQt5.ui,External Tools->PyUIC,就自動生成了.py文件。
- 在Python中使用Qt設計的界面
代碼如下:
from testPyQt5 import Ui_MainWindow #導入uitestPyQt5.ui轉換爲uitestPyQt5.py中的類
from PyQt5 import QtWidgets
import sys
class Mywindow(QtWidgets.QMainWindow,Ui_MainWindow):
#建立的是Main Window項目,故此處導入的是QMainWindow
#參考博客中建立的是Widget項目,因此哪裏導入的是QWidget
def __init__(self):
super(Mywindow, self).__init__()
self.setupUi(self)
def btn_click(self): #定義槽函數btn_click(),也可以理解爲重載類Ui_MainWindow中的槽函數btn_click()
self.textEdit.setText("hi,PyQt5~")
app = QtWidgets.QApplication(sys.argv)
window = Mywindow()
window.show()
sys.exit(app.exec_())
效果如下圖: