python3 利用PyQt5、Qt Creator快速完成程序界面

一、簡介:

本文僅做爲學習記錄。

PyQt5是基於圖形程序框架Qt5的Python語言實現,由一組Python模塊構成。
PyQt5的官方網站是:www.riverbankcomputing.co.uk。
PyQt5模塊介紹的官網地址是:http://pyqt.sourceforge.net/Docs/PyQt5/introduction. html

Qt Creator是跨平臺的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收購後推出的一款新的輕量級集成開發環境(IDE)。此 IDE 能夠跨平臺運行,支持的系統包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根據官方描述,Qt Creator 的設計目標是使開發人員能夠利用 Qt 這個應用程序框架更加快速及輕易的完成開發任務。

二、安裝:

pip install PyQt5

安裝完運行以下代碼來確認安裝成功:(代碼爲網絡拷貝的,已測試正常)

import sys
 
#這裏我們提供必要的引用。基本控件位於pyqt5.qtwidgets模塊中。
from PyQt5.QtWidgets import QApplication, QWidget
 
if __name__ == '__main__':
    #每一pyqt5應用程序必須創建一個應用程序對象。sys.argv參數是一個列表,從命令行輸入參數。
    app = QApplication(sys.argv)
    #QWidget部件是pyqt5所有用戶界面對象的基類。他爲QWidget提供默認構造函數。默認構造函數沒有父類。
    w = QWidget()
    #resize()方法調整窗口的大小。這離是250px寬150px高
    w.resize(250, 150)
    #move()方法移動窗口在屏幕上的位置到x = 300,y = 300座標。
    w.move(300, 300)
    #設置窗口的標題
    w.setWindowTitle('Simple')
    #顯示在屏幕上
    w.show()
    
    #系統exit()方法確保應用程序乾淨的退出
    #的exec_()方法有下劃線。因爲執行是一個Python關鍵詞。因此,exec_()代替
    sys.exit(app.exec_())

運行正常顯示窗體。但是用代碼寫界面不是我們的初衷。所以我們安裝Qt Creator可以直接拖拽控件和VB一樣:

下載地址:

http://download.qt.io/official_releases/qtcreator/

安裝過程中需要登陸賬號。其他就是 下一步下一步了。

安裝完成後打開:

選擇文件→新建文件或項目,選擇Qt→Qt Designer Form。

選擇Main Window→路徑和文件名自己設置→下一步,最後點擊完成會生成一個.ui的文件,就可以拖動左邊的組件進行界面的繪製了。

繪製完成界面以後。cmd來到剛纔的ui文件處執行以下命令完成ui文件轉py文件:

pyuic5 -o mainwindow.py mainwindow.ui

其中,-o 後的參數爲輸出文件的名稱 -o 後第二個參數即爲生成的ui文件的名稱。

如果運行這個py文件會報錯。因爲需要稍微修改一下。

增加引用:

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog,QMessageBox  
import sys

添加程序入口

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

然後再次按下F5,成功運行,彈出界面。

三、交互:

1、按鈕單擊事件:

#pushButton 爲按鈕名。open_file 點擊執行函數
self.pushButton.clicked.connect(self.open_file)

#獲取label中的文本內容
self.label.text()

#將文案輸出到QTextBrowser組件中顯示
self.textBrowser.append('一行文字')

判斷複選框是否選中返回的是true/false。
self.checkBox.isChecked()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章