欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyQt5 關于Qt Designer的初步應用和打包過程詳解

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

Qt Designer的介紹

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

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

1. 緣由

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

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

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

2. 搭建

2.1. 安裝

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

$ pip3 install pyqt5

然后安裝常用工具:

$ pip3 install pyqt5-tools pyinstaller

pyqt5和pyinstaller有版本對應關系,推薦同時期安裝,如果版本偏差,會導致pyinstaller打包一直失敗。

2.2. 打開

找到 Qt Designer 應用程序啟動文件,這邊的地址是對應Python目錄下的 \Lib\site-packages\qt5_applications\Qt\bin\designer.exe

在這里插入圖片描述 

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

打開 designer.exe

在這里插入圖片描述 

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

  • Main Window 主界面

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

  • Widget 小部件

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

  • Dialog 對話框

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

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

在這里插入圖片描述

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

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

2.3. 設計

拉拽個按鈕控件,并保存為csdn.ui

在這里插入圖片描述

2.4. 轉換

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

在這里插入圖片描述

現在需要通過工具轉換成py文件

$ pyuic5 源文件.ui -o 目標文件.py

即:

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

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

在這里插入圖片描述

3. 效果

3.1. 引用

創(chuàng)建一個邏輯文件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_())

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

3.2. 啟動

啟動logic.py文件

在這里插入圖片描述

3.3. 打包

可以通過pyinstaller進行打包

普通

$ pyinstaller -w logic.py

在dist文件夾內生成工程文件夾 logic,尋找logic.exe文件啟動

在這里插入圖片描述

整合

$ pyinstaller -F -w logic.py

在dist文件夾內生成logic.exe整合文件,點擊啟動(啟動較久)

在這里插入圖片描述

配置信息在執(zhí)行以上兩種打包時候,會產生.spec配置文件,可以通過調整配置文件執(zhí)行打包

$ pyinstaller logic.spec

3.4. 觸發(fā)

使用connect()方法將信號與槽函數綁定在一起當信號發(fā)射時,連接槽函數將會自動執(zhí)行

如把點擊pushButton按鈕作為一個信號

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

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

此時點擊按鈕,可看到終端顯示提示了

在這里插入圖片描述

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

相關文章

  • Python matplotlib畫圖與中文設置操作實例分析

    Python matplotlib畫圖與中文設置操作實例分析

    這篇文章主要介紹了Python matplotlib畫圖與中文設置操作,結合實例形式分析了Python使用matplotlib進行圖形繪制及中文設置相關操作技巧,需要的朋友可以參考下
    2019-04-04
  • 返回最大值的index pytorch方式

    返回最大值的index pytorch方式

    這篇文章主要介紹了返回最大值的index pytorch方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python機器學習實現神經網絡示例解析

    python機器學習實現神經網絡示例解析

    這篇文章主要為大家介紹了python機器學習python實現神經網絡的示例解析,在同樣在進行python機器學習的同學可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python中with及contextlib的用法詳解

    Python中with及contextlib的用法詳解

    這篇文章主要介紹了Python中with及contextlib的用法,結合實例形式較為詳細的分析了with及contextlib的功能、使用方法與相關注意事項,需要的朋友可以參考下
    2017-06-06
  • 使用pandas實現連續(xù)數據的離散化處理方式(分箱操作)

    使用pandas實現連續(xù)數據的離散化處理方式(分箱操作)

    今天小編就為大家分享一篇使用pandas實現連續(xù)數據的離散化處理方式(分箱操作),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python實現上傳下載文件功能

    python實現上傳下載文件功能

    這篇文章主要為大家詳細介紹了python實現上傳下載文件功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 解決啟動django,瀏覽器顯示“服務器拒絕訪問”的問題

    解決啟動django,瀏覽器顯示“服務器拒絕訪問”的問題

    這篇文章主要介紹了解決啟動django,瀏覽器顯示“服務器拒絕訪問”的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python利用re模塊實現簡易分詞(tokenization)

    Python利用re模塊實現簡易分詞(tokenization)

    分詞(tokenization)任務是Python字符串處理中最為常見任務了。本文將利用re模塊實現簡易tokenizer,文中的示例代碼講解詳細,需要的可以參考一下
    2022-04-04
  • Python中Class類用法實例分析

    Python中Class類用法實例分析

    這篇文章主要介紹了Python中Class類用法,以實例形式較為詳細的分析了Python中類的定義及相關使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Python 正則表達式大全(推薦)

    Python 正則表達式大全(推薦)

    正則表達式是對字符串操作的一種邏輯公式,正則表達式是一種文本模式,該模式描述在搜索文本時要匹配的一個或多個字符串。本文重點給大家介紹Python 正則表達式大全,感興趣的朋友一起看看吧
    2021-11-11

最新評論