【问题标题】:OpenCV & Qt - SetGeometry-ErrorOpenCV & Qt - SetGeometry-Error
【发布时间】:2018-01-09 07:52:26
【问题描述】:

我浏览了以下链接,但找不到解决问题的方法:

Qt setGeometry: Unable to set geometry

Unable to set geometry in Qt

https://forum.qt.io/topic/38304/setgeometry-unable-to-set-geometry

以下代码产生错误。在使用 Visual Studio 进行调试时,图像仍在显示中。但是当直接使用可执行文件时,程序会崩溃。

QWindowsWindow::setGeometry: 无法设置几何 374x133+2679+423 在 QWidgetWindow/'TestWindowWindow' 上。结果几何: 376x141+2679+423(帧:8、31、8、8,自定义边距:0、0、0、0, 最小尺寸:374x133,最大尺寸:374x133)。

我的代码如下所示:

#include "stdafx.h"
#include <iostream>
#include <opencv2\opencv.hpp>

using namespace std;
int main()
{
  cout << "Test-Console for OpenCV" << endl;

  string path = "C:/Data/01_Daten/tiger.bmp";
  cv::Mat image = cv::imread(path, cv::IMREAD_GRAYSCALE);

  if (image.empty())
  {
    cout << "Failed to read image" << endl;
    getchar();
    return 1;
  }

  cv::namedWindow("TestWindow", cv::WINDOW_AUTOSIZE);
  cv::imshow("TestWindow", image);

  cout << "Press any key to exit..." << endl;

  cv::waitKey(-1);
  return 0;
}

我正在使用 Visual Stuido 2013、OpenCV 3.3.0、QT 5.9.2 OpenCV 是用 WithQT 编译的。

【问题讨论】:

  • 您的代码似乎与 Qt 无关。 OpenCV 有自己的 GUI 工具包。所以关于QWindowsWindow::setGeometry 的错误可能是由其他地方引起的。
  • 据我了解使用 Qt 编译的 OpenCV,如果在编译期间启用了 Qt,它将使用 Qt 而不是“普通”GUI。由于我要编写的代码使用 Qt,我必须启用它。上面的代码代表了一个产生相同错误的最小工作示例。

标签: c++ qt opencv


【解决方案1】:

我的问题的解决方案是重建 OpenCV,不仅选择了选项 WithQT,还选择了 WithOpenGL

我不确定这是否是解决问题的唯一方法,我认为 QT-Module 甚至应该在没有 OpenGL-Part 的情况下工作,但它帮助了我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2021-09-27
    相关资源
    最近更新 更多