使用createButton在openv2.4.5 (Qt gui功能)段故障
Using createButton in opencv2.4.5 (Qt gui features) segfault
我实际上在使用以下OpenCV示例时遇到了麻烦:
http://docs.opencv.org/2.4.5/modules/highgui/doc/qt_new_functions.html(我为我的环境更新路径&添加了示例中没有的回调函数)。
我编译了Opencv设置Qt On:
<>之前GUI:——qt 4。x: YES (ver 4.8.2 EDITION = OpenSource)QT OpenGL支持:NO- OpenGL支持:不之前当我尝试在Qt文档中找到的代码时:我有以下回溯:
<>之前(gdb)回溯#0 0x00007ffff14f53e8 in QAction::setEnabled(bool) () from/usr/lib/x86_64-linux-gnu/libQtGui.so.4#1 0x00007ffff67bf0db in GuiReceiver::enablePropertiesButtonEachWindow() () from/usr/local/lib/libopencv_highgui.so.2.4#2 0x00007ffff67c02db在GuiReceiver::addButton(QString, int, int, void*, void*)()从/usr/local/lib/libopencv_highgui.so.2.4#3 0x00007ffff67c5e9a in GuiReceiver::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from/usr/local/lib/libopencv_highgui.so.2.4#4 0x00007ffff0fcef77在QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const ()从/usr/lib/x86_64-linux-gnu/libQtCore.so.4#5 0x00007ffff0fd134c在QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)(1)从/usr/lib/x86_64-linux-gnu/libQtCore.so.4#6 0x00007ffff67b23a7在cvCreateButton()从/usr/local/lib/libopencv_highgui.so.2.4#7 0x0000000000400f6c in main (argc=, argv=) at main.cpp:20之前有人有同样的问题吗?我只是想明确一点,我不想在Qt中嵌入Opencv,而只是使用Opencv提供的Qt功能。
我在这里找到了一个答案的开头:如何在OpenCV中使用cv::createButton原型
但这无关…
谢谢你的帮助。
仍然有一些问题,这里有一段代码:
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
void callbackButton(int state, void* userdata){}
int main(int ac, char **av){
namedWindow("main1",CV_WINDOW_NORMAL);
namedWindow("main2",CV_WINDOW_AUTOSIZE | CV_GUI_NORMAL);
int a = 0;
createButton("test",callbackButton, &a, CV_CHECKBOX,1);
return 0;
}
我不能确认也不能否认这个问题是真实的,因为我的机器上有不同的设置(OpenCV 2.4.9和Qt 5.0.2)。
但是我发现用CV_GUI_NORMAL
创建一个窗口会使应用程序崩溃。文档说明:
CV_GUI_NORMAL或CV_GUI_EXPANDED: CV_GUI_NORMAL是绘制没有状态栏和工具栏的窗口的旧方法,而CV_GUI_EXPANDED是新的增强GUI。
我建议你暂时用CV_GUI_EXPANDED
创建你的窗口
我也不能用OpenCV 2.4.5/Qt 4.8.0创建按钮。我下载了OpenCV 2.4.9并在相同的设置下安装了它,现在它可以工作了
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- 带内存和隔离功能的SQLite
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 类模板的成员功能的定义在单独的TU中完全专业化
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在C++中获得"静态纯虚拟"功能?
- 两个文件使用彼此的功能-如何解决
- 我应该实现右值推送功能吗?我应该使用std::move吗
- QML按钮点击功能执行顺序
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 有没有可能有一个只有ADL才能找到的非好友功能
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 文件系统:复制功能的速度秘诀是什么
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 如何在Directwrite中获得给定字体的可用OpenType功能
- 对可变参数使用声明.如何选择正确的功能
- 询问在设计我的手臂模拟器功能表示格式1
- 功能原型的目的
- 使用createButton在openv2.4.5 (Qt gui功能)段故障