Qt Gtk警告**:必须在Gtk_init()之前调用Gtk_disable_setlocale()

Qt Gtk警告**:必须在Gtk_init()之前调用Gtk_disable_setlocale(),qt,ubuntu,opencv,gtk,Qt,Ubuntu,Opencv,Gtk,每当我将OpenCV的cv::imshow与Qt的QApplication一起使用时,就会出现以下错误: Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init() 我做了一些搜索,最后阅读了越来越多关于我不完全理解的东西,但对OpenCV和GTK+的联系有了一些想法。由于该警告显然是一条先调用某物再调用某物的指令,因此我包括了gtk.h,并调用了gtk\u disable\u setlocale(),但最终

每当我将OpenCV的
cv::imshow
与Qt的
QApplication
一起使用时,就会出现以下错误:

Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()
我做了一些搜索,最后阅读了越来越多关于我不完全理解的东西,但对OpenCV和GTK+的联系有了一些想法。由于该警告显然是一条先调用某物再调用某物的指令,因此我包括了
gtk.h
,并调用了
gtk\u disable\u setlocale()
,但最终导致了更多的错误

尽管有警告,我的代码仍然运行,没有任何问题,但它真的让我讨厌!我假设在警告的背后,有一些程序员应该理解的基本内容。所以也许有人能用一个高级新手能理解的方式来解释整件事

编辑: 我正在使用ubuntu 12.10、OpenCV 2.4、GTK 2.24.13和
qmake-v
告诉我

QMake version 2.01a 
Using Qt version 4.8.3 in /usr/lib/x86_64-linux-gnu

如果要使用Qt窗口系统,最好避免在创建Qt窗口的同时创建OpenCV窗口


IplImage
cv::Mat
转换为
QImage
,并在Qt窗口上绘制,一个简单的Qt/OpenCV示例,在Qt窗口上显示加载了OpenCV的图像,还显示基于鼠标坐标的像素RGB值。

您是否在Linux上运行?哪个发行版?我可以确认opencv/qt/gtk之间的冲突仍然存在于Ubuntu 14.04中。如果程序的其他部分正在使用qt,它似乎会中断imshow。我会将
cv::Mat
s转换为
QImage
s以显示最终结果。只是当我需要查看一些中间结果时,
cv::imshow()
会派上用场。我只是想知道警告是关于什么的。
cv::imshow()
在你背后做了太多可能导致冲突的事情。我想真正理解它的唯一方法是调试应用程序,看看它会带你去哪里。