最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyQt5 關(guān)于Qt Designer的初步應(yīng)用和打包過(guò)程詳解

 更新時(shí)間:2021年09月26日 09:30:35   作者:氫鍵H-H  
Qt Designer中的操作方式十分靈活,其通過(guò)拖拽的方式放置控件可以隨時(shí)查看控件效果。這篇文章主要介紹了PyQt5 關(guān)于Qt Designer的初步應(yīng)用和打包,需要的朋友可以參考下

Qt Designer的介紹

在PyQt中編寫UI界面可以直接通過(guò)代碼來(lái)實(shí)現(xiàn),也可以通過(guò)Qt Designer來(lái)完成。Qt Designer的設(shè)計(jì)符合MVC的架構(gòu),其實(shí)現(xiàn)了視圖和邏輯的分離,從而實(shí)現(xiàn)了開發(fā)的便捷。Qt Designer中的操作方式十分靈活,其通過(guò)拖拽的方式放置控件可以隨時(shí)查看控件效果。Qt Designer生成的.ui文件(實(shí)質(zhì)上是XML格式的文件)也可以通過(guò)pyuic5工具轉(zhuǎn)換成.py文件。 Qt Designer隨PyQt5-tools包一起安裝,其安裝路徑在 “Python安裝路徑\Lib\site-packages\pyqt5-tools”下。若要啟動(dòng)Qt Designer可以直接到上述目錄下,雙擊designer.exe打開Qt Designer;或?qū)⑸鲜雎窂郊尤氕h(huán)境變量,在命令行輸入designer打開;或在PyCharm中將其配置為外部工具打開。下面以PyCharm為例,講述PyCharm中Qt Designer的配置方法。

機(jī)器人開發(fā)之路總會(huì)有很多的艱難險(xiǎn)阻,但雖然辛苦,還是選擇了那種滾燙的人生。很幸運(yùn),獲得了機(jī)器人開發(fā)領(lǐng)域優(yōu)質(zhì)創(chuàng)作者身份認(rèn)證。征途漫漫,惟有奮斗,共勉!

1. 緣由

開發(fā)過(guò)程中,難免需要自己手動(dòng)開發(fā)一些交互工具簡(jiǎn)單的如自動(dòng)化腳本復(fù)雜一點(diǎn)的呢就是帶界面交互的應(yīng)用軟件了

QT呢就是一款很受歡迎的圖形用戶界面應(yīng)用程序開發(fā)框架只寵Python的搬運(yùn)工,就需要Python和Qt庫(kù)融合的工具,它就是 PyQt5

在PyQt中編寫UI界面可以直接通過(guò)代碼來(lái)實(shí)現(xiàn),也可以通過(guò)Qt Designer來(lái)完成其實(shí)現(xiàn)了視圖和邏輯的分離,從而實(shí)現(xiàn)了開發(fā)的便捷

2. 搭建

2.1. 安裝

若未安裝pyqt5,則需先安裝:

$ pip3 install pyqt5

然后安裝常用工具:

$ pip3 install pyqt5-tools pyinstaller

pyqt5和pyinstaller有版本對(duì)應(yīng)關(guān)系,推薦同時(shí)期安裝,如果版本偏差,會(huì)導(dǎo)致pyinstaller打包一直失敗。

2.2. 打開

找到 Qt Designer 應(yīng)用程序啟動(dòng)文件,這邊的地址是對(duì)應(yīng)Python目錄下的 \Lib\site-packages\qt5_applications\Qt\bin\designer.exe

在這里插入圖片描述 

可以添加桌面快捷方式方便后續(xù)打開

打開 designer.exe

在這里插入圖片描述 

創(chuàng)建新的Form給出了5個(gè)模板,但實(shí)際上只有3種不同類型的模板,分別是Dialog、Main Window和Widget

  • Main Window 主界面

一個(gè)窗口是父/子的頂部,通常顯示標(biāo)題欄和邊框。底層窗口系統(tǒng)(Windows、KDE、GNOME等)將為窗口提供策略,如標(biāo)題欄/邊框樣式、布局和焦點(diǎn)等。

  • Widget 小部件

屏幕上的一個(gè)矩形區(qū)域,用于顯示和用戶交互,包括按鈕、滑塊、視圖、對(duì)話框和窗口等。所有窗口小部件將在屏幕上顯示某些內(nèi)容,許多窗口小部件也將接受來(lái)自鍵盤或鼠標(biāo)的用戶輸入。

  • Dialog 對(duì)話框

通常是臨時(shí)的,可以設(shè)置不同的標(biāo)題欄外觀,主要用于通知或收集輸入窗口,并且底部或右側(cè)通常具有OK、Cancel等按鈕。

這里選擇創(chuàng)建一個(gè)Main Window

在這里插入圖片描述

在QT Designer界面里分為5個(gè)區(qū)域,正中間區(qū)域是軟件設(shè)計(jì)的界面,左右兩側(cè)是功能區(qū)域,功能區(qū)域的說(shuō)明如下:

  • Widget Box:控件區(qū),軟件的功能控件都在此區(qū)域生成,可以拉拽控件到模板上實(shí)現(xiàn)可視化軟件設(shè)計(jì)。
  • 對(duì)象查看器:軟件的目錄結(jié)構(gòu),顯示模板中所有控件的類型,能幫助設(shè)計(jì)者快速找到控件。
  • 屬性編輯器:控件屬性區(qū),主要修改控件的屬性。
  • 信號(hào)/槽編輯器:對(duì)象間的通信機(jī)制。如單擊按鈕(信號(hào) Signal)時(shí)候所觸發(fā)的事件(槽 Slot)。

2.3. 設(shè)計(jì)

拉拽個(gè)按鈕控件,并保存為csdn.ui

在這里插入圖片描述

2.4. 轉(zhuǎn)換

打開剛剛保存的ui文件,可以發(fā)現(xiàn)其實(shí)也就是XML文件

在這里插入圖片描述

現(xiàn)在需要通過(guò)工具轉(zhuǎn)換成py文件

$ pyuic5 源文件.ui -o 目標(biāo)文件.py

即:

$ pyuic5 .\csdn.ui -o .\csdn.py

推薦作為py腳本,方便后續(xù)或批量轉(zhuǎn)換

在這里插入圖片描述

3. 效果

3.1. 引用

創(chuàng)建一個(gè)邏輯文件logic.py

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from csdn import Ui_MainWindow


class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()
        self.setupUi(self)


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

通過(guò)上述代碼,繼承了Ui_MainWindow類,使用其構(gòu)造方法構(gòu)造主窗口并定義了程序的入口,通過(guò)創(chuàng)建QApplication對(duì)象來(lái)創(chuàng)建Qt窗口

3.2. 啟動(dòng)

啟動(dòng)logic.py文件

在這里插入圖片描述

3.3. 打包

可以通過(guò)pyinstaller進(jìn)行打包

普通

$ pyinstaller -w logic.py

在dist文件夾內(nèi)生成工程文件夾 logic,尋找logic.exe文件啟動(dòng)

在這里插入圖片描述

整合

$ pyinstaller -F -w logic.py

在dist文件夾內(nèi)生成logic.exe整合文件,點(diǎn)擊啟動(dòng)(啟動(dòng)較久)

在這里插入圖片描述

配置信息在執(zhí)行以上兩種打包時(shí)候,會(huì)產(chǎn)生.spec配置文件,可以通過(guò)調(diào)整配置文件執(zhí)行打包

$ pyinstaller logic.spec

3.4. 觸發(fā)

使用connect()方法將信號(hào)與槽函數(shù)綁定在一起當(dāng)信號(hào)發(fā)射時(shí),連接槽函數(shù)將會(huì)自動(dòng)執(zhí)行

如把點(diǎn)擊pushButton按鈕作為一個(gè)信號(hào)

class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()
        self.setupUi(self)
        # 將pushButton信號(hào)與槽函數(shù)touch_button綁定
        self.pushButton.clicked.connect(self.touch_button)

    def touch_button(self):
        print('點(diǎn)擊按鈕了')

此時(shí)點(diǎn)擊按鈕,可看到終端顯示提示了

在這里插入圖片描述

到此這篇關(guān)于PyQt5 關(guān)于Qt Designer的初步應(yīng)用和打包的文章就介紹到這了,更多相關(guān)Qt Designer應(yīng)用打包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 弄懂這56個(gè)Python使用技巧(輕松掌握Python高效開發(fā))

    弄懂這56個(gè)Python使用技巧(輕松掌握Python高效開發(fā))

    這篇文章主要介紹了弄懂這56個(gè)Python使用技巧(輕松掌握Python高效開發(fā)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • tensor.squeeze函數(shù)和tensor.unsqueeze函數(shù)的使用詳解

    tensor.squeeze函數(shù)和tensor.unsqueeze函數(shù)的使用詳解

    本文主要介紹了tensor.squeeze函數(shù)和tensor.unsqueeze函數(shù)的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Flask項(xiàng)目的部署的實(shí)現(xiàn)步驟

    Flask項(xiàng)目的部署的實(shí)現(xiàn)步驟

    本文主要介紹了Flask項(xiàng)目的部署的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 解決python存數(shù)據(jù)庫(kù)速度太慢的問題

    解決python存數(shù)據(jù)庫(kù)速度太慢的問題

    這篇文章主要介紹了解決python存數(shù)據(jù)庫(kù)速度太慢的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • Python函數(shù)參數(shù)類型*、**的區(qū)別

    Python函數(shù)參數(shù)類型*、**的區(qū)別

    這篇文章主要介紹了Python函數(shù)參數(shù)類型*、**的區(qū)別,本文用實(shí)例講解它們的區(qū)別,并講解了閉包的相關(guān)知識(shí),需要的朋友可以參考下
    2015-04-04
  • 一篇文章教你學(xué)會(huì)使用Python繪制甘特圖

    一篇文章教你學(xué)會(huì)使用Python繪制甘特圖

    甘特圖又稱為橫道圖、條狀圖,它是以作業(yè)排序?yàn)槟康模瑢⒒顒?dòng)與時(shí)間聯(lián)系起來(lái)的最早嘗試的工具之一,能夠很直觀地顯示項(xiàng)目、進(jìn)度等和時(shí)間的內(nèi)在關(guān)系隨著時(shí)間的進(jìn)展情況,在管理和生產(chǎn)活動(dòng)中被廣泛使用
    2021-09-09
  • python實(shí)現(xiàn)取余操作的簡(jiǎn)單實(shí)例

    python實(shí)現(xiàn)取余操作的簡(jiǎn)單實(shí)例

    在本篇文章里小編給各位分享的是一篇關(guān)于python實(shí)現(xiàn)取余操作的簡(jiǎn)單實(shí)例內(nèi)容,需要的朋友們可以參考下。
    2020-08-08
  • Numpy之布爾索引的實(shí)現(xiàn)

    Numpy之布爾索引的實(shí)現(xiàn)

    本文主要介紹了Numpy之布爾索引的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式

    基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式

    今天小編就為大家分享一篇基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python語(yǔ)法學(xué)習(xí)之進(jìn)程間的通信方式

    Python語(yǔ)法學(xué)習(xí)之進(jìn)程間的通信方式

    進(jìn)程在創(chuàng)建之后是沒有辦法獲取返回值的,但有的時(shí)候兩個(gè)進(jìn)程之間需要進(jìn)行相互之間的配合才能完成工作,這就需要通信的幫助。本文主要介紹了Python中進(jìn)程間的通信方式,需要的可以了解一下
    2022-04-04

最新評(píng)論

土默特右旗| 阜南县| 永川市| 偏关县| 新晃| 沐川县| 南澳县| 托克托县| 庆阳市| 洪湖市| 乌审旗| 莱芜市| 安塞县| 汉寿县| 德令哈市| 乐安县| 平南县| 繁峙县| 顺昌县| 河池市| 黄龙县| 宁城县| 马鞍山市| 师宗县| 阿荣旗| 祁门县| 江永县| 平远县| 那曲县| 湟源县| 隆子县| 皋兰县| 那曲县| 赫章县| 南川市| 潼南县| 汉川市| 阳新县| 宁远县| 定远县| 庆安县|