在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何快速開發(fā)出功能強大、界面美觀的GUI 應(yīng)用程序

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 14:45 ? 次閱讀

1. 介紹

Python GUI 常用的 3 種框架是:Tkinter、wxpython、PyQt5

PyQt5 基于 Qt,是 Python 和 Qt 的結(jié)合體,可以用 Python 語言編寫跨平臺的 GUI 應(yīng)用程序

相比 Tkiner和 wxpython,PyQt5 利用自帶的 Qt Designer 可視化工具進行界面設(shè)計,可以非常快速地開發(fā)出一款功能強大、界面美觀的 GUI 應(yīng)用程序

2. 安裝

以 Mac OSX 為例,PC 下的操作類似。

首先,在系統(tǒng)內(nèi)部安裝 qt 應(yīng)用

# 安裝qt
brew install qt

然后,在 Python 虛擬環(huán)境下安裝 sip 和 pyqt5 兩個依賴庫

# 安裝依賴sip
pip3 install sip

# 安裝依賴pyqt5
pip3 install pyqt5

接著,在 Pycharm 中配置 External Tools,新建 Qt Designer 和 PyUIC 兩個命令

# Qt Designer 配置
Program/usr/local/Cellar/qt/5.14.1/libexec/Designer.app
Working directory:/usr/local/Cellar/qt/5.14.1/libexec

# PyUIC
# Python環(huán)境路徑
Program:/usr/local/bin/python3.7
# 參數(shù)
Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py 
# 路徑【固定】
Working directory:$ProjectFileDir$

其中,在第一步安裝 Qt 應(yīng)用文件夾下,找到 Designer.app 和 libexec 兩個文件,配置進去

圖片

由于 QtDesigner 生成的文件是 *.ui 文件,需要借助 pyqt5 中的 pyuic,將 ui 文件轉(zhuǎn)換為 Python 文件

圖片

最后,可以直接在 Pycharm 中快速打開 Designer 界面、ui 轉(zhuǎn) py 文件這兩個操作。

圖片

3. 常用功能介紹

QtDesigner 是一個非常強大的 GUI 設(shè)計工具,生成的文件格式為:*.ui

圖片

QtDesigner 主要包含下面 6 部分:

  • 主設(shè)計界面區(qū)
  • 控件區(qū)
  • 控件屬性區(qū)
  • 信號和槽函數(shù)區(qū)
  • 資源圖片區(qū)
  • 控件結(jié)構(gòu)樹區(qū)

其中,

主設(shè)計界面區(qū):用于窗口編輯,最終的 GUI 展示區(qū)域

控件區(qū):包含文本、輸入框、選擇器、容器等控件,可以直接拖拉到窗口進行布局

屬性區(qū):用于定義控件的屬性,包含:內(nèi)容、字體大小、寬和高等

信號和槽函數(shù)區(qū):可以很方便地為一個控件指定一個事件監(jiān)聽,比如:單擊、選中事件等

資源圖片區(qū)域:用于導(dǎo)入本地的資源文件,在控件中使用,比如:圖片

控件結(jié)構(gòu)樹區(qū):可以很直觀地顯示控件間的結(jié)構(gòu)關(guān)系

4.來個例子

第 1 步,我們從控件區(qū)拖 3 個按鈕和 2 個輸入框到界面設(shè)計區(qū)域

圖片

第 2 步,選中控件,鼠標右鍵為控件新增屬性,比如:控件內(nèi)容、控件名稱(相當于id),對于一些復(fù)雜的屬性設(shè)置,需要在屬性區(qū)域單獨進行設(shè)置

編輯完 UI 界面之后,會在本地生成一個 *.ui 的文件

圖片

第 3 步,選擇 *.ui 文件,在 Pycharm 中使用 PyUIC 命令,將 ui 文件轉(zhuǎn)換為 py 文件

# ui文件轉(zhuǎn)為py文件
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 790)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(130, 80, 111, 41))
        self.pushButton.setObjectName("pushButton")
        self.username = QtWidgets.QLineEdit(self.centralwidget)
        self.username.setGeometry(QtCore.QRect(260, 80, 271, 41))
        self.username.setObjectName("username")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(130, 150, 111, 41))
        self.pushButton_2.setObjectName("pushButton_2")
        self.password = QtWidgets.QLineEdit(self.centralwidget)
        self.password.setGeometry(QtCore.QRect(260, 150, 271, 41))
        self.password.setObjectName("password")
        self.login = QtWidgets.QPushButton(self.centralwidget)
        self.login.setGeometry(QtCore.QRect(260, 230, 141, 61))
        self.login.setObjectName("login")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "用戶名:"))
        self.pushButton_2.setText(_translate("MainWindow", "密碼:"))
        self.login.setText(_translate("MainWindow", "登錄"))

第 4 步,為按鈕添加點擊事件

使用 控件名.信號.connect(槽函數(shù)) 的形式,為控件添加一個點擊事件的監(jiān)聽

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        # 為登錄按鈕指定事件
        # clicked:信號,login_met:槽函數(shù)
        self.login.clicked.connect(self.login_met)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def login_met(self):
        """
        登錄事件(槽函數(shù))
        :return:
        """
        # 用戶名輸入框的內(nèi)容
        username = self.login.text()
        # 密碼輸入框的內(nèi)容
        password = self.password.text()

        print("輸入的用戶名是:", username, "密碼是:", password)

第 5 步,展示界面

最后,新建一個 py 文件,實例化一個 QApplication 對象,將上面創(chuàng)建的 MainWindow 展示出來即可。

import sys

from PyQt5.QtWidgets import QApplication, QMainWindow

# 界面文件
from temp import *


class CustomUI(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(CustomUI, self).__init__(parent)
        self.setupUi(self)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    cutomUI = CustomUI()
    cutomUI.show()
    sys.exit(app.exec_())

需要注意的是,這部分內(nèi)容僅僅是調(diào)用顯示 GUI 界面的邏輯,實際項目開發(fā)過程中很少變動。

圖片

5.總結(jié)

通過上面的例子發(fā)現(xiàn),使用 PyQt5 構(gòu)建 GUI 真的很方便,大部分的工作都可以在 QtDesigner 設(shè)計完成,然后回歸到 Pycharm中,轉(zhuǎn)為 py 文件、編寫信號和槽函數(shù),就能快速開發(fā) GUI 圖形用戶界面。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3324

    瀏覽量

    58841
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1252

    瀏覽量

    21711
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    677

    瀏覽量

    40920
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86400
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    圖形界面開發(fā)工具GUI Guider的使用教程

    GUI Guider是NXP推出的一款功能強大且對用戶非常友好的圖形界面開發(fā)工具。目前最新版本是1.6.1。
    的頭像 發(fā)表于 12-20 09:49 ?2.5w次閱讀
    圖形<b class='flag-5'>界面</b><b class='flag-5'>開發(fā)</b>工具<b class='flag-5'>GUI</b> Guider的使用教程

    Python是如何使用Tkinter快速創(chuàng)建GUI應(yīng)用程序

    Tkinter是什么?Python是如何使用Tkinter快速創(chuàng)建GUI應(yīng)用程序的?
    發(fā)表于 12-23 07:15

    適用于移動終端的GUI設(shè)計與實現(xiàn)

    介紹一種適用于移動終端的圖形用戶界面GUI)系統(tǒng)的設(shè)計與實現(xiàn),使基于該GUI系統(tǒng)開發(fā)的移動終端應(yīng)用程序具有
    發(fā)表于 09-22 09:57 ?10次下載

    基于WinCE應(yīng)用程序GUI界面開發(fā)方案

      本文旨在介紹嵌入式系統(tǒng)在Wince下進行GUI應(yīng)用程序開發(fā)可以選擇的不同GUI開發(fā)框架。
    發(fā)表于 09-18 15:38 ?5次下載
    基于WinCE<b class='flag-5'>應(yīng)用程序</b><b class='flag-5'>GUI</b><b class='flag-5'>界面</b>的<b class='flag-5'>開發(fā)</b>方案

    Android應(yīng)用程序GUI遍歷自動化方法

    和性能。 為了提高應(yīng)用程序自動執(zhí)行技術(shù)的圖形用戶界面GUI)覆蓋率和自動化程度以滿足Android應(yīng)用
    發(fā)表于 12-09 11:06 ?0次下載
    Android<b class='flag-5'>應(yīng)用程序</b><b class='flag-5'>GUI</b>遍歷自動化方法

    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC 快速開發(fā)嵌入式應(yīng)用程序 (2)-走馬燈

    全稱 Toolkit AnyWhere,是 ZLG 開發(fā)的開源 GUI 引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機和 PC 打造的通用 GUI 引擎,為用戶提供一個
    的頭像 發(fā)表于 05-31 18:05 ?749次閱讀
    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC <b class='flag-5'>快速</b><b class='flag-5'>開發(fā)</b>嵌入式<b class='flag-5'>應(yīng)用程序</b> (2)-走馬燈

    用AWTK和AWPLC快速開發(fā)嵌入式應(yīng)用程序 (1)-溫度控制器

    ToolkitAnyWhere,是ZLG開發(fā)的開源GUI引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機和PC打造的通用GUI引擎,為用戶提供一個
    的頭像 發(fā)表于 09-28 09:57 ?989次閱讀
    用AWTK和AWPLC<b class='flag-5'>快速</b><b class='flag-5'>開發(fā)</b>嵌入式<b class='flag-5'>應(yīng)用程序</b> (1)-溫度控制器

    【Z站推薦】用 AWTK 和 AWPLC 快速開發(fā)嵌入式應(yīng)用程序 (2)-走馬燈

    ,是ZLG開發(fā)的開源GUI引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機和PC打造的通用GUI引擎,為用戶提供一個功能強大、高效可靠、簡單
    的頭像 發(fā)表于 10-13 14:38 ?981次閱讀
    【Z站推薦】用 AWTK 和 AWPLC <b class='flag-5'>快速</b><b class='flag-5'>開發(fā)</b>嵌入式<b class='flag-5'>應(yīng)用程序</b> (2)-走馬燈

    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC 快速開發(fā)嵌入式應(yīng)用程序 (4)- 自定義功能塊(上)

    為嵌入式系統(tǒng)、WEB、各種小程序、手機和PC打造的通用GUI引擎,為用戶提供一個功能強大、高效可靠、簡單易用、可輕松做出炫酷效果的GUI引擎。AWPLC是ZLG自主
    的頭像 發(fā)表于 11-02 09:56 ?1121次閱讀
    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC <b class='flag-5'>快速</b><b class='flag-5'>開發(fā)</b>嵌入式<b class='flag-5'>應(yīng)用程序</b> (4)- 自定義<b class='flag-5'>功能</b>塊(上)

    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC 快速開發(fā)嵌入式應(yīng)用程序 (3)- 定時器

    ToolkitAnyWhere,是ZLG開發(fā)的開源GUI引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機和PC打造的通用GUI引擎,為用戶提供一個
    的頭像 發(fā)表于 11-02 10:02 ?1109次閱讀
    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC <b class='flag-5'>快速</b><b class='flag-5'>開發(fā)</b>嵌入式<b class='flag-5'>應(yīng)用程序</b> (3)- 定時器

    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC 快速開發(fā)嵌入式應(yīng)用程序 (5)- 自定義功能塊(下)

    的開源GUI引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機和PC打造的通用GUI引擎,為用戶提供一個功能強大、高效可靠、簡單易用、可輕松做出炫酷效果的
    的頭像 發(fā)表于 11-04 10:12 ?1244次閱讀
    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC <b class='flag-5'>快速</b><b class='flag-5'>開發(fā)</b>嵌入式<b class='flag-5'>應(yīng)用程序</b> (5)- 自定義<b class='flag-5'>功能</b>塊(下)

    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC 快速開發(fā)嵌入式應(yīng)用程序 (2)-走馬燈

    ,是ZLG開發(fā)的開源GUI引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機和PC打造的通用GUI引擎,為用戶提供一個功能強大、高效可靠、簡單
    的頭像 發(fā)表于 06-08 10:13 ?935次閱讀
    【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC <b class='flag-5'>快速</b><b class='flag-5'>開發(fā)</b>嵌入式<b class='flag-5'>應(yīng)用程序</b> (2)-走馬燈

    LVGL結(jié)合RT-thread快速開發(fā)出漂亮GUI的利器GUI-Guider

    GUI-Guider是一種功能強大的軟件,它為用戶提供了一種簡單直觀的方式來創(chuàng)建和設(shè)計圖形用戶界面GUI)。
    的頭像 發(fā)表于 11-14 12:38 ?4769次閱讀
    LVGL結(jié)合RT-thread<b class='flag-5'>快速</b><b class='flag-5'>開發(fā)出</b>漂亮<b class='flag-5'>GUI</b>的利器<b class='flag-5'>GUI</b>-Guider

    python窗口圖形界面編程

    Python是一種功能強大而又簡單易用的編程語言,支持多種編程范式,包括面向過程、面向?qū)ο蠛秃瘮?shù)式編程。除了用于開發(fā)各種類型的應(yīng)用程序和網(wǎng)絡(luò)服務(wù),Python還提供了豐富的圖形用戶界面
    的頭像 發(fā)表于 11-22 14:23 ?1174次閱讀

    上位機可視化界面編程軟件有哪些

    上位機可視化界面編程軟件是一類用于開發(fā)圖形用戶界面(GUI)的軟件工具,它們通常提供了豐富的界面元素、易于使用的編程接口和
    的頭像 發(fā)表于 06-06 10:48 ?3650次閱讀
    主站蜘蛛池模板: 在线免费观看一区二区三区 | 欧美另类bbw | 爱夜夜性夜夜夜夜夜夜爽 | 大学生一级特黄的免费大片视频 | 亚洲精品456人成在线 | 六月婷婷在线观看 | 性夜黄 a 爽免费看 性夜黄a爽影免费看 | 国产伦子一区二区三区 | 成人a毛片在线看免费全部播放 | 久久影院朴妮唛 | 免费啪啪小视频 | 天堂精品视频 | 花怜write. as| 欧洲熟色妇 | 亚洲一区二区三区免费看 | 欧美精品videosex极品 | 天堂资源在线观看 | 婷婷深爱 | 免费 视频 1级 | 四虎永久地址4hu紧急入口 | 黄色视屏日本 | 欧美三级不卡在线观线看高清 | 久久国产精品99久久久久久老狼 | 天天射夜夜骑 | 狠狠狠狠操 | 射菊吧 | 色拍拍视频 | 美女张开腿让男人桶爽 | 国产三片理论电影在线 | 国产精品二区三区免费播放心 | 午夜在线观看完整高清免费 | 手机看片福利日韩国产 | 男人你懂的在线观看视频 | 天天天天天干 | 亚洲国产色图 | 成人二区| 丁香八月婷婷 | 日本高免费观看在线播放 | 性做久久久久久久 | brazzers在线 | 日本黄色小视频在线观看 |