2013-03-17 51 views
29

我最近開始使用Qt庫,並且我有一個問題。 這是可能的使用QT與Visual Studio沒有特殊的加載項?在沒有加載項的情況下將Qt與Visual Studio結合使用

我想只使用qt設計器設計UI,並在VS Express中完成其餘部分。 我該怎麼做?

謝謝。

+4

你爲什麼要這麼做?我的意思是,沒有Visual Assist X的VS很笨拙,它不適用於Express。使用Qt Creator,您可以獲得出色的自動完成功能和大量時間保護程序 - 爲屬性生成訪問器,從聲明中生成定義等等...另外VS根本不支持QML。您仍然可以使用Creator的VS編譯器。總的來說,我認爲沒有理由選擇VS Express。 – dtech 2013-03-17 20:42:46

+9

@ddriver一個很好的理由是,如果你已經有了一個Visual Studio解決方案,並且希望爲它添加一個QT項目,而不必擁有兩個獨立的IDE並保持兩組設置。 – JBentley 2013-10-09 13:34:16

回答

24

是的,你可以,如果你不希望使用QtVSAddin它是非常容易使用Qt與VS快遞沒有VS插件和,而無需做任何的UIC或手動MOC步驟。讓QMake(與Qt一起安裝,但不是QtVSAddin的一部分)創建您的VS項目文件,並在qmake項目文件中執行所有項目設置。無論您何時進行添加/刪除表單或來源的更改,都可以修改qmake項目文件並重新生成VS項目。根本不要修改VS項目文件,只將它作爲臨時項目處理。 QMake會自動將規則添加到VS項目文件以重新運行uicmoc,如果您只是修改源代碼或表單,則不需要執行任何操作。

爲了配置管理的目的,我發現這是一個更簡潔的方法來使用這個工作流程,因爲您只將VS項目文件視爲臨時項目(它們傾向於差異很大並且是pain to maintain in version control)。

幾個片段來幫助你:

在你的qmake項目文件確保您添加下面一行到它,這樣VS項目文件生成在Windows上運行(QMAKE默認生成生成文件)時。

your_qmake_proj.pro

win32: TEMPLATE = vcapp 

此外,它的方便,有一個批處理文件重新運行qmake的,所以你不必打開一個命令提示符並設置環境(或者更改目錄到您的項目在已經具有環境設置的命令提示符下)。如果你沒有在Windows中設置各種Qt環境變量(或者不想),請確保將它們添加到批處理文件中。

makevcproj.bat

set QTDIR=C:\Qt\x.y.z 
set PATH=%PATH%;%QTDIR%\bin 
set QMAKESPEC=win32-msvcXXXX 
qmake your_qmake_proj.pro 
pause 
+0

你實際上可以添加-tp vc到qmake行: qmake your_qmake_proj.pro -tp vc 並且不要更改.pro文件 – 2015-09-25 22:12:49

2

這當然是可以的,但是如果沒有加載項,您需要在編譯VS中的其餘部分之前或通過預編譯腳本編寫UIMOC所需的文件。

具體來說:

uic.ui文件生成的標頭。

moc產生額外的執行文件有Qt的宏在它的類。

加載項可以幫助您在編譯其餘文件之前,在需要的文件上順利地調用這些文件。

+0

不客氣。 – meyumer 2013-03-17 21:16:24

-2

這是可能的,如果你在QtCreator中創建用戶界面,並以生成UI和MOC文件的方式手動設置VS。

但它太多的工作,你可以使用QtCreator這是一個驚人的光IDE。

+0

鏈接已損壞。 – 2014-05-11 10:34:23

3

CMake的也是一個答案,它不與Visual Studio的快遞版本。我的意思是如果你在CMake中使用Qt支持,你可以在Visual Studio中開發Qt項目(就像我已經做了多年),而不使用Qt插件。我只爲相同軟件包中的調試擴展安裝插件。

+0

我已經在QtCreator中的「Installed plugins」下選中了「CMakeProjectManager」。我如何爲VS創建一個新項目,然後使用CMake進行編譯? – user2180248 2013-03-19 20:07:44

+0

我不確定CMake QtCreator插件包含什麼。 CMake官方下載位於:http://www.cmake.org/cmake/resources/software.html。至於如何開始,您需要爲您的應用程序創建一個CMakeLists.txt文件,並使用CMake生成Visual Studio解決方案,而不是在Visual Studio GUI中執行此操作。 – drescherjm 2013-03-19 21:35:20

相關問題