翻譯|使用教程|編輯:龔雪|2022-11-10 10:07:54.460|閱讀 296 次
概述:本系列文章將為大家介紹如何使用Qt 6來構建一個項目,歡迎持續關注獲取更多Qt中文教程!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Qt是目前最先進、最完整的跨平臺C++開發工具。它不僅完全實現了一次編寫,所有平臺無差別運行,更提供了幾乎所有開發過程中需要用到的工具。如今,Qt已被運用于超過70個行業、數千家企業,支持數百萬設備及應用。
在上文中(點擊這里回顧>>),我們為大家介紹了用于構建項目的構建系統、如何使用項目向導等,本文將繼續介紹如何選擇要創建項目的類型。
類別 | 向導模板 | 目的 |
應用程序(Qt for MCU) | MCU Support Application | 創建一個應用程序,該應用程序使用Qt QML和Qt Quick Controls類型的子集(由Qt for MCU支持),您可以在MCU板上部署、運行和調試。 |
應用程序(Qt) | Qt Widgets Application | 使用Qt Designer表單為桌面設計一個基于Qt小部件的用戶界面,并使用c++實現應用程序邏輯。 |
Qt Console Application | 使用一個main.cpp文件。 | |
Qt Quick Application | 創建一個Qt Quick 2應用程序項目,該項目可以包含QML和c++代碼。您可以構建應用程序并將其部署到桌面、嵌入式和移動目標平臺。 | |
應用程序(Qt for Python) | Empty Application | 創建一個Qt for Python應用程序,其中只包含的主代碼。 |
Empty Window | 創建一個Qt for Python應用程序,其中包含一個空窗口。 | |
Window UI | 創建一個Qt for Python應用程序,其中包含一個空窗口和一個基于小部件的UI。首選方法,需要您從.ui文件生成一個Python文件,以便將其直接導入到應用程序中。 | |
Window UI - Dynamic load | 創建一個Qt for Python應用程序,其中包含一個空窗口和一個基于小部件的UI。 | |
Qt Quick 應用程序 - Empty | 創建一個包含空Qt Quick Application的Python項目。 | |
庫 |
C++庫 |
一個基于qmake的共享或靜態c++庫。 |
Qt Quick 2擴展插件 | 創建一個c++插件,通過使用QQmlEngine類,可以提供可以動態加載到Qt Quick 2應用程序中的擴展。 | |
Qt Creator插件 | 創建一個Qt Creator插件。 | |
其他項目 |
Qt Custom Designer Widget |
創建自定義Qt Designer小部件或小部件集合。 |
Qt Quick UI Prototype |
使用包含主視圖的單個QML文件創建Qt Quick UI項目,您可以在QML場景預覽工具中預覽Qt Quick 2 UI項目。不需要構建它們,因為它們不包含任何c++代碼。 只有在進行原型設計時才使用此模板,不能使用此模板創建完整應用。 Qt Quick UI項目不能部署到嵌入式或移動目標平臺。對于這些平臺,應該創建Qt Quick應用程序。 |
|
Auto Test Project | 為Qt或谷歌測試創建帶有樣板代碼的項目。 | |
Subdirs Project | 創建子項目,該子項目使您能夠將qmake項目構造為樹形層次結構。 | |
Empty qmake Project | 創建一個基于qmake但不使用任何默認類的空qmake項目。 | |
Code Snippet | 從代碼片段創建qmake項目。在修復包含代碼段的錯誤報告時,可以將代碼段放入項目中進行編譯和檢查。 | |
Non-Qt Project |
Plain C Application |
創建一個使用qmake、Qbs或CMake但不使用Qt庫的普通C應用程序。 |
Plain C++ Application | 創建一個使用qmake、Qbs或CMake但不使用Qt庫的普通c++應用程序。 | |
Nim Application (experimental) | 創建一個使用Nimble但不使用Qt庫的Nim應用程序。 | |
Nimble Application (experimental) | 創建一個使用Nimble但不使用Qt庫的Nimble應用程序。 | |
導入項目 | 項目從版本控制 | 從受支持的版本控制系統(如Bazaar、CVS、Git、Mercurial或Subversion)導入項目。 |
導入為qmake或CMake項目(功能有限) | 導入不使用任何支持的構建系統(qmake、Qbs、CMake或Autotools)的現有項目。該模板創建一個項目文件,它使您能夠使用Qt Creator作為代碼編輯器和調試和分析工具的啟動器。但是如果您想要構建項目,可能需要編輯生成的項目文件。 | |
導入現有的項目 | 導入不使用任何支持的構建系統(qmake、Qbs、CMake或Autotools)的現有項目,這使您能夠使用Qt Creator作為代碼編輯器。 |
要創建一個新項目,選擇File > New Project并選擇項目的類型,向導對話框的內容取決于項目類型和您在Kit Selection對話框中選擇的套件,按照向導的說明操作。
Qt for Python使您能夠在Python應用程序中使用Qt 6 API,可以使用PySide6模塊來訪問單獨的Qt模塊,例如Qt Core、Qt GUI和Qt Widgets。
如果您還沒有安裝PySide6,Qt Creator會在項目創建后提示您安裝它。此外,它還提示您安裝提供代碼完成和注釋等服務的Python語言服務器,選擇Install來安裝PySide6和語言服務器。
若要查看和管理可用的Python解釋器,請選擇“Edit > Preferences > Python > interpreters”。
您可以添加和刪除解釋器,并清理對已卸載但仍顯示在列表中的解釋器的引用,此外還可以將解釋器設置為默認使用。
Qt for Python Application向導生成一個.pyproject文件,其中列出了Python項目中的文件,以及一個.py文件,其中包含一些示例代碼。此外,基于小部件的UI向導會創建一個包含Qt Designer表單的.ui文件,Qt Quick Application向導會創建一個包含Qt Quick控件的.qml文件。
.pyproject文件是基于json的配置文件,它取代了以前使用的.pyqtc配置文件。您仍然可以打開并使用.pyqtc文件,但我們建議您為新項目選擇.pyproject文件。
Window UI向導使您能夠創建包含類源文件的Python項目。指定PySide版本、類名、基類和類的源文件。
向導將導入文件添加到源文件中,以提供對QApplication、在Qt Widgets模塊中選擇的基類和Qt UI工具的訪問:
import sys from PySide6.QtWidgets import QApplication, QWidget
注意:首先要從UI表單創建Python代碼,這一點很重要。在PySide6中,可以通過在終端執行pyside6-uic form.ui -o ui_form.py來實現這一點,這使您能夠從該Python文件導入表示UI的類。
一旦從UI文件生成Python代碼,就可以導入這個類:
from ui_form import Ui_Widget
該向導還添加一個具有指定名稱的主類,從指定的基類繼承:
class Widget(QWidget): def __init__(self, parent=None): super().__init__(parent)
主類中的以下行從UI文件實例化生成的Python類,并為當前類設置接口。
self.ui = Ui_Widget() self.ui.setupUi(self)
注意:新類的UI元素可以作為成員變量訪問。例如,如果您有一個名為button1的按鈕,可以使用self.ui.button1與它交互。
接下來,向導添加一個主函數,在其中創建一個 實例。因為Qt可以從命令行接收參數,所以您可以將任何參數傳遞給QApplication對象。通常,您不需要傳遞任何參數,可以使用以下方法:
if __name__ == "__main__": app = QApplication(sys.argv)
接下來,向導實例化MainWindow類并顯示它:
widget = Widget() widget.show() ...
最后,向導調用app.exec()方法進入Qt主循環并開始執行Qt代碼:
sys.exit(app.exec())
現在,您可以在Edit模式中修改示例代碼,來開發Python應用程序。選擇工具欄上的REPL啟動Python交互式shell,要啟動shell并將當前文件作為模塊導入,請選擇select REPL import file。要從文件中導入所有函數,請選擇REPL import *。
總是在修改UI文件后重新生成Python代碼。
在Design模式下打開.ui文件,在Qt Designer中創建一個基于小部件的UI。
Window向導將類似的代碼添加到源文件中,但不添加UI位。
Empty向導將類似的代碼添加到源文件中,但是它不添加任何類,因此您需要自己添加并實例化它們。
Qt技術交流群:166830288 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網