草庐IT

Qt-OpenCV

全部标签

c++ - 如何在 Qt 中使用 QGraphicsItem 的 itemChange

我有自定义椭圆QGraphicsItem类和自定义线类。在现场,我假设有两个椭圆和它们之间用一条线连接起来。Ellipse有一个指向这条线的指针并且是可移动的。我的问题是我不知道如何使用QGraphicsItem中的itemChange()。我想建立会随着椭圆运动而变化的联系。所以我想使用itemChange()方法来更改线坐标,使其始终位于椭圆的中心。我阅读了来自QGraphicsItem::itemChange()的文档但我不知道如何在我的案例中使用它。 最佳答案 正如其他人已经指出的那样,您需要覆盖(重新实现)类中的方法。下面

c++ - Qt::WA_DeleteOnClose

我正在学习Qt并尝试“FoundationsofQtDevelopment”一书中的一些示例。在这本书中,有一节讲授单文档界面,并举例说明创建一个像记事本这样的简单应用程序。MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);setAttribute(Qt::WA_DeleteOnClose);setWindowTitle(QString("%1[*]-%2").arg("unnamed").arg("SDI"));connect(ui->d

c++ - 使用 Qt::X11BypassWindowManagerHint 标志时窗口没有获得焦点

我需要创建窗口,它始终保持在顶部,没有边框和控件。所以我这样做了:MainWindowwindow;window.show();MainWindow类如下所示:MainWindow::MainWindow(QWidget*parent):QWidget(parent,Qt::Window|Qt::WindowStaysOnTopHint|Qt::X11BypassWindowManagerHint|Qt::FramelessWindowHint){}voidMainWindow::keyPressEvent(QKeyEvent*event){if(event->key()==Qt::K

OpenCv(C++)学习笔记二——视频的读取与输出

OpenCv学习笔记二——视频的读取与输出视频的读取视频的输出视频的读取cv::VideoCapture类是读取视频的,cv::VideoCapture既支持视频文件的读取,也支持从视频捕捉文件中读取视频。cv::VideoCapture类创建对象的方式如下三种:cv::VideoCapturecapture(conststring&filename,);//第一种:从输入的文件名对应文件中读取cv::VideoCapturecapture(intdevice);//第二种:从视频捕捉设备ID中读取cv::VideoCapturecapture();//第三种:调用无参构造函数创建对象第一种方

c++ - OpenCV 3.0 - 如何从 CSV 字符串创建 cv::Mat?

我正在尝试从我从python脚本通过管道传输的CSV字符串创建一个cv::Mat。我目前正在使用python2.7、C++和OpenCV3.0,我所能找到的只是如何在OpenCV2.4中执行此操作,但问题是它与3.0有很大不同,后者以某种方式使用了ml::TrainData。我不明白它是如何工作的,也没有示例代码!:-(我的python脚本所做的是将np.array传输为CSV,它看起来像这样:importsysimportnumpyasnpimportcsvcsvToSend=csv.writer(sys.stdout,delimiter=',')data=np.array([[3,

c++ - 部署 Qt QML 编译的可执行文件

所以我有一个简单的应用程序,它使用QML作为我的图形界面,使用C++代码来处理一些逻辑。我一直在寻找一种将QML编译成C++代码并将其链接到我的二进制文件的方法,并在Qt主页上找到了这个页面:http://doc.qt.io/QtQuickCompiler/基本上它说对我所有的QML图形界面文件使用资源系统,并将QML编译器标志添加到我的.pro文件中的qmake配置行,一切都应该顺利进行。据我所知,一切都可以正常编译,但是当我使用Qtwindeployqt.exe工具获取所有依赖文件并在干净的系统上对其进行测试时,我会看到一个小白屏,就好像我的QML文件是未正确加载。我有一个使用“q

c++ - 如何使用Qt检查文件夹是否可写

我正在尝试检查文件夹是否可写,以便提示错误对话框。我正在尝试这个:QFileDevice::Permissionspermissions_list=QFile(folderName).permissions();if(permissions_list&&QFileDevice::WriteUser){}但它不起作用。可写文件夹和受限文件夹都是一样的。 最佳答案 使用QFileInfo:QFileInfomy_dir(folderName);if(my_dir.isDir()&&my_dir.isWritable()){//Dosom

c++ - 如何将 CLion (1.2.4) 用于涉及 Qt Creator 的项目?

QtCreator使GUI创建变得非常容易,但我宁愿使用CLion进行编码部分,并且只使用QtCreator进行GUI编辑。 最佳答案 绝对有可能!我在Mac上,所以我做的一些事情在其他操作系统上不会完全相同。它们是小而简单的事情,一点点google-fu应该可以相对轻松地修复。步骤1:创建QtCreator项目我将在此示例中使用小部件应用程序。稍后我将讨论其他类型的项目。我强烈推荐的一件事是将构建目录(在侧边栏上的“项目”选项卡下)更改为相对路径而不是绝对路径,尤其是在进入GitHub或类似路径时。我把它改成了./QtBinDeb

c++ - Opencv cv::waitKey() 返回值

我正在调试一些在Ubuntu14上使用OpenCV的C++代码,众所周知,它可以在Ubuntu12上运行,也可能与其他OpenCV库构建一起运行。之前是什么intkey_pressed=waitKey(0);cout但此代码无效,在输出中我有key_pressed1048603此代码有效:charkey_pressed=cv::waitKey();cout此代码有效,在输出中我有key_pressed27这种行为的原因是什么?附言documentationsayscv::waitKey()返回int,那么我们为什么要把它转换成char? 最佳答案

c++ - OpenCV 无法识别 Mat 大小

我正在尝试使用定义400x400垫子的OpenCV打印图像:plot2=cv::Mat(400,400,CV_8U,255);但是当我尝试打印这些点时,奇怪的事情发生了。y坐标仅打印前100个值。也就是说,如果我打印点(50,100),它不会打印在列的第100/400部分,而是打印在最后。不知何故,400列变成了100。例如,运行时:for(intj=0;j(20,j)=0;}cv::imshow("segundapared",plot2);显示如下(划线部分为上面代码对应的部分):一条达到95的线几乎占据了所有400个点,而它本应只占据屏幕的95/400。我做错了什么?