vs中結合Qt的UI檔案生成moc檔案的方法

2021-08-01 05:34:45 字數 1826 閱讀 1587

前言:一點關於moc的小知識

qt是乙個跨平台的可提供使用者介面的應用程式開發框架,用於開發圖形使用者介面(gui)或非圖形使用者介面。qt使用標準的c++擴充套件包括訊號與插槽,是物件導向的框架,可生成特殊的元物件編譯器(meta object compiler,moc)易於擴充套件並且允許元件程式設計。

那麼問題來了,怎麼樣在設計好ui後生成可應用可編譯的moc呢?

step1

在解決方案資源管理器中,選中ui檔案,右鍵編譯,會生成ui_***.h。

step2

新建***.h標頭檔案,像這樣,注意檔名的一致性。

#ifndef featureselect_h

#define featureselect_h

#include #include #include #include #include #include "ui_featureselect.h"

class featureselect : public qdialog

;#endif // normalestimate_h

step3

選中step2中新建的***.h檔案,右鍵屬性->配置屬性->自定義生成工具->常規

根據自己實際情況修改命令列內容,如下:

"$(qtdir)\bin\moc.exe"  "%(fullpath)" -o ".\generatedfiles\$(configurationname)\moc_%(filename).cpp"  -dunicode -dwin32 -dwin64 -dqt_dll -dqt_no_debug -dndebug -dqt_core_lib -dqt_gui_lib -dqt_widgets_lib  "-i.\generatedfiles" "-i." "-i$(qtdir)\include" "-i.\generatedfiles\$(configurationname)\." "-i$(qtdir)\include\qtcore" "-i$(qtdir)\include\qtgui" "-i$(qtdir)\include\qtwidgets" "-id:\python34\include" "-i$(projectdir)\." "-i$(pcl_root)\include\pcl-1.8" "-i$(pcl_root)\3rdparty\boost\include\boost-1_59" "-i$(pcl_root)\3rdparty\eigen\eigen3" "-i$(pcl_root)\3rdparty\flann\include" "-i$(pcl_root)\3rdparty\openni2\include" "-i$(pcl_root)\3rdparty\qhull\include" "-i$(pcl_root)\3rdparty\vtk\include\vtk-7.0"
根據自己實際情況修改說明內容,如下:

moc%27ing pclvisualizer.h...
修改輸出內容,如下:

.\generatedfiles\$(configurationname)\moc_%(filename).cpp
修改附加依賴項內容,如下:

$(qtdir)\bin\moc.exe;%(fullpath)
最終得到如圖:

最後選中***.h,右鍵編譯,即得到moc檔案~

Qt4中ui檔案生成vcproj

製作ui檔案 先應該用qt designer繪製乙個自己的介面,並存為myform.ui 這裡的myform可以用自己喜歡的名字代替 在製作自己的介面檔案時要注意以下幾個要點 1 要記住ui檔案的名字,因為uic生成的 會存在ui myform.h裡 2 要記住主窗體的object name,因為u...

Qt中ui檔案的使用

用designer設計的 ui檔案可以通過uic工具轉換為 h檔案 在編譯時也會自動生成這樣乙個ui h檔案 有了這個.h檔案就可以直接按照純c 的方式對其中的類進行呼叫。ui檔案的使用就是利用預設工具uic自動產生乙個類,然後用該類的setui函式載入介面到相應的物件上。ui檔案的使用有三種形式 ...

vs2010中自動生成Qt的moc檔案的方法

qt 程式在交由標準編譯器編譯之前,先要使用 moc 分析 c 原始檔。如果它發現在乙個標頭檔案中包含了巨集 q object,則會生成另外乙個 c 原始檔。這個原始檔中包含了 q object 巨集的實現 這個新的檔案名字將會是原檔名前面加上 moc 構成。這個新的檔案同樣將進入編譯系統,最終被鏈...