2012-07-28 32 views
0

我正在看opencv highgui示例(像connectedcomponents.cpp)並嘗試習慣添加GUI元素。目前,我想添加一個按鈕:如何爲OpenCV和Qt設置鏈接以使用createButton?

void on_button(int, void*){ 
    cout << "click" << end; 
} 
//in main() 
createButton("test",on_button); 

但我得到一個鏈接錯誤:

g++ -c -pipe -g -gdwarf-2 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -Wall -W -DQT_CORE_LIB -I../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/macx-g++ -I. -I../../../QtSDK/Desktop/Qt/474/gcc/lib/QtCore.framework/Versions/4/Headers -I../../../QtSDK/Desktop/Qt/474/gcc/include/QtCore -I../../../QtSDK/Desktop/Qt/474/gcc/include -I/opt/local/include -I../../../QtSDK/Desktop/Qt/474/gcc/include -I. -F/Users/george/QtSDK/Desktop/Qt/474/gcc/lib -o main.o main.cpp 
g++ -headerpad_max_install_names -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -o CVConnectedComponent main.o -F/Users/george/QtSDK/Desktop/Qt/474/gcc/lib -L/Users/george/QtSDK/Desktop/Qt/474/gcc/lib /opt/local/lib/libopencv_core.dylib /opt/local/lib/libopencv_contrib.dylib /opt/local/lib/libopencv_highgui.dylib /opt/local/lib/libopencv_objdetect.dylib /opt/local/lib/libopencv_imgproc.dylib /opt/local/lib/libopencv_features2d.dylib /opt/local/lib/libopencv_video.dylib -framework QtCore -F/Users/george/Documents/Qt/CVConnectedComponent/../../../QtSDK/Desktop/Qt/474/gcc/lib/ 
Undefined symbols: 
    "cv::createButton(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(int, void*), void*, int, bool)", referenced from: 
     _main in main.o 
make: Leaving directory `/Users/george/Documents/Qt/CVConnectedComponent' 
ld: symbol(s) not found 

至於我能理解,我不反對鏈接的QtCore庫正常。 我有這樣的:

mac: LIBS += -framework QtCore 

這:

mac: LIBS += -F$$PWD/../../../QtSDK/Desktop/Qt/474/gcc/lib/ -framework QtCore 

INCLUDEPATH += $$PWD/../../../QtSDK/Desktop/Qt/474/gcc/include 
DEPENDPATH += $$PWD/../../../QtSDK/Desktop/Qt/474/gcc/include 

在Qt工程的.pro文件,但沒有運氣。 我在osx 10.6.8上使用OpenCV 2.4.1和Qt 4.7.4。

鏈接到Qt Creator中的QtCore以在OpenCV中使用createButton的正確方法是什麼?

+0

'CV :: createButton'不是'Qt'框架的一部分。 (即使是這樣,你也必須連接'QtCore'和'QtGui')。你可能應該鏈接'highgui' – Lol4t0 2012-07-28 11:26:01

+0

我不知道,我認爲highgui在幕後引用Qt。我已經鏈接到libopencv_highgui.dylib,但仍然沒有找到符號錯誤 – 2012-07-28 11:29:11

+0

而我試過鏈接對QtCore和QtGui框架沒有運氣:( – 2012-07-28 14:47:58

回答

0

我已經重新安裝了OpenCV,這次有Qt支持和代碼工作。 不過這是值得記住的是,按鈕將進入控制面板默認情況下,我發現通過reading some documentation

OpenCV Qt GUI