翻譯|使用教程|編輯:吳園園|2020-05-13 16:59:23.837|閱讀 326 次
概述:到現(xiàn)在為止,片段被插入到片段文件中,其中每個(gè)代碼片段都被(主要是)數(shù)字標(biāo)記包圍。通過(guò)執(zhí)行一個(gè)\ snippet命令,然后是該片段文件的路徑以及您要引用的代碼標(biāo)簽來(lái)調(diào)用它們。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Qt最早誕生于1991年,長(zhǎng)期以來(lái)一直以“l(fā)inux平臺(tái)下,最著名的開(kāi)發(fā)平臺(tái)”身份,在全世界開(kāi)發(fā)者中享有盛譽(yù)。Qt Enterprise是目前最先進(jìn)、最完整的跨平臺(tái)C++開(kāi)發(fā)工具。它不僅完全實(shí)現(xiàn)了一次編寫,所有平臺(tái)無(wú)差別運(yùn)行,更提供了幾乎所有開(kāi)發(fā)過(guò)程中需要用到的工具。如今,Qt已被運(yùn)用于超過(guò)70個(gè)行業(yè)、數(shù)千家企業(yè),支持?jǐn)?shù)百萬(wàn)設(shè)備及應(yīng)用。
到現(xiàn)在為止,片段被插入到片段文件中,其中每個(gè)代碼片段都被(主要是)數(shù)字標(biāo)記包圍。通過(guò)執(zhí)行一個(gè)\ snippet命令,然后是該片段文件的路徑以及您要引用的代碼標(biāo)簽來(lái)調(diào)用它們。
一個(gè)例子:
... \ snippet graphicsview.cpp 2 ...片段文件中的片段:
//! [2]
class View : public QGraphicsView
{
Q_OBJECT
...
public slots:
void zoomIn() { scale(1.2, 1.2); }
void zoomOut() { scale(1 / 1.2, 1 / 1.2); }
void rotateLeft() { rotate(-10); }
void rotateRight() { rotate(10); }
...
};
//! [2]
該摘要文件主要是cpp或qml文件。片段可以包含語(yǔ)法錯(cuò)誤或錯(cuò)別字。他們不應(yīng)通過(guò)審核階段,但如果這樣做,則CI不會(huì)發(fā)現(xiàn)這些錯(cuò)誤。使代碼片段可編譯將避免這種情況。但是,對(duì)于qml中的代碼片段,這是不可能的,因?yàn)楫?dāng)前無(wú)法編譯qml。
使代碼段可編譯還意味著您必須插入僅代碼段才能使代碼段可編譯。在任何地方都沒(méi)有引用并且實(shí)際上沒(méi)有功能含義的代碼。有時(shí)甚至是“ typedef void”語(yǔ)句,只是為了使摘要代碼可編譯。這也意味著有時(shí)必須拆分一個(gè)片段文件。某些代碼段實(shí)際上是不可編譯的。該代碼段可能非常簡(jiǎn)潔(參見(jiàn)下文),或者可能涉及到在某些平臺(tái)上可能無(wú)法編譯的庫(kù)。
//! [1] //! [0] #include <QtQuickTest> //! [0] QUICK_TEST_MAIN(example) //! [1]
在這種情況下,片段文件被拆分,其中一個(gè)文件仍具有原始名稱,而另一個(gè)不可編譯的文件在其基本名稱后附加了_snippet。
對(duì)于QtSql,我必須將所有Progresql語(yǔ)句移至不可編譯的代碼段文件。我可以在Linux上編譯Progresql語(yǔ)句,但是肯定存在無(wú)法編譯它們的平臺(tái)。
可編譯的片段需要一個(gè)新的項(xiàng)目文件snippets.pro。您可以在下面看到QtWidgets的項(xiàng)目文件:
requires(qtHaveModule(widgets)) requires(qtHaveModule(printsupport)) TEMPLATE = app TARGET = widgets_snippets QT += widgets printsupport SOURCES += customviewstyle.cpp \ filedialogurls.cpp \ graphicssceneadditemsnippet.cpp \ graphicsview.cpp \ mdiareasnippets.cpp \ myscrollarea.cpp
QtWidgets,QtSql,QtTest,QtQuickTest和Qt Network已經(jīng)做到了這一點(diǎn)。
局限性之一是,我們僅計(jì)劃將代碼段編譯為語(yǔ)法或命名檢查。我沒(méi)有對(duì)該可執(zhí)行文件進(jìn)行進(jìn)一步測(cè)試。在Qt 6中,qml將是可編譯的,這將允許我們對(duì)qml使用相同的代碼段檢查系統(tǒng)。
=====================================================
購(gòu)買Qt Enterprise正版授權(quán)的朋友可以點(diǎn)擊""哦~~~
掃描關(guān)注慧聚IT微信公眾號(hào),及時(shí)獲取最新動(dòng)態(tài)及最新資訊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: