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