文章目錄
- 前言
- 一、Qt 簡介以及安裝
- 二、PyQt5 安裝
- 三、在PyCharm中直接撰寫代碼創建GUI
- 四、在Qt中創建py檔案
- 總結
前言
博主最近在學習Python,但是苦于沒有實踐動手的機會,所以就順便練習一下GUI設計,趁此機會鍛煉一下Python的熟練度,軟體請自行下載,Python3.9+Qt 5.12
以下是本篇文章正文內容,系列文章僅為學習記錄,并不作為教程,有建議可以在評論提出,私信一般不回復,
一、Qt 簡介以及安裝
簡單介紹Qt 以及回應的環境安裝
- Qt 簡介
Qt是一個跨平臺的 C++ 開發庫,主要用來開發圖形用戶界面(Graphical User Interface,GUI)程式,當然也可以開發不帶界面的命令列(Command User Interface,CUI)程式,支持通用作業系統 Windows、Linux、Unix,智能手機系統 Android、iOS、WinPhone, 嵌入式系統 QNX、VxWorks 等等, - Qt下載與安裝
在Python中使用PyQt5撰寫程式可以直接安裝PyQt5,不需要安裝Qt的開發環境,但是這樣就只能使用純代碼寫程式,一直以這種方式寫MATLAB的GUI程式的我深感界面調整的繁瑣,所以還是選擇安裝Qt的IDE,即Qt Creator采用可視化設計,
下載安裝包:
鏈接:https://pan.baidu.com/s/1gb6NYuFUV-tr31mdIEXuxg
提取碼:1111
直接點擊安裝包安裝,選擇Qt 類別下的 MinGW、Qt Charts、Qt Data Visualization,以及Tools類別下的Qt Creator 和 MinGW即可,
二、PyQt5 安裝
在命令列下輸入pip3 install PyQt5 安裝Python依賴庫,
也可以使用清華鏡像網站,指令是:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5
三、在PyCharm中直接撰寫代碼創建GUI
代碼如下:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
app = QtWidgets.QApplication(sys.argv) # 創建app
widgetHello = QtWidgets.QWidget() # 創建表單,選擇QtWidget類
widgetHello.resize(280, 150) #設定表單大小
widgetHello.setWindowTitle("Demo") # 設定表單名稱
LabHello = QtWidgets.QLabel(widgetHello) # 創建標簽,指定父容器
LabHello.setText('Hello,World') # 設定標簽內容
font = QtGui.QFont() # 創建字體font物件
font.setBold(True) # 加粗
font.setPointSize(12) # 字號
LabHello.setFont(font) # 設定標簽字體
size = LabHello.sizeHint() # 獲取最佳位置
LabHello.setGeometry(70,60,size.width(),size.height()) # 設定標簽位置
widgetHello.show() # 顯示表單
sys.exit(app.exec_()) # 點選單關閉才關閉視窗,否則運行完上述代碼直接關閉視窗
運行效果:

四、在Qt中創建py檔案
打開安裝好的Qt Creator,新建專案會得到一個后綴名為.ui的檔案,


拖動模板,移動到創建好的面板中,效果圖如下:


保存后,可以得到ui檔案,可以用記事本打開,其實就是一個XML檔案,

為了得到生成的py檔案,新建文本,輸入pyuic5 -o HelloForm.py HelloForm.ui,這里.ui檔案是源檔案,py檔案是生成的python檔案,保存為.bat批處理檔案,雙擊運行,就會發現生成了python代碼:
代碼如下(示例):
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'HelloForm.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(140, 110, 111, 16))
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(140, 150, 92, 28))
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "Hello World"))
self.pushButton.setText(_translate("Form", "Close"))
#########################呼叫方法###################################
app = QtWidgets.QApplication(sys.argv)
baseW = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(baseW)
baseW.show()
sys.exit(app.exec_())
# 定義了一個類,用于實作創建的GUI 不需要傳入任何引數
# setupUi 方法用于GUI的初始化 需要傳入QtWight物件,該物件需要
# retranslateUi 方法用于設定GUI所有文字部分,便于多語言的設定
# 使用方法: 創建QApplication物件->創建QWidget物件->創建Ui_Form物件
# ->Ui_Form物件初始化
這里其實是將我們剛付訓好的GUI封裝成了一個類,當我們實作這個類的物件時,會生成相應的GUI,
添加上面最后一部分的代碼,運行得到:

總結
本文簡單介紹了Qt的使用方法,但是具體如何完整寫一個能實作所需功能的GUI還需要更多學習,至此你已經可以自行設計GUI,然后通過改寫生成的代碼進行細化了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/287159.html
標籤:python
