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