当我在Raspberry Pi上合并使用QTCreator制作的两个工作应用程序时,GLib-GObject警告和错误

时间:2019-01-14 02:11:54

标签: c++ qt opencv raspberry-pi glib

我有两个使用 QTCreator(Qt Creator 4.2.0 基于Qt 5.7.1),仅适用于 Raspberry Pi 3 Model B +(Raspbian 9.6拉伸)

第一个应用程序是使用opencv的Non-qt Plain C ++应用程序。应用程序将在哪里进行人脸检测。第二个应用程序是QT Widgets应用程序,其中只有一些QDialogs。

这两个应用程序都可以在pi上构建和运行。他们运行完美,可以完成应做的事情。尽管QT窗口小部件应用程序会在运行时发出以下警告:

libEGL warning: DRI2: failed to authenticate
qt5ct: using qt5ct plugin

但是它仍然可以很好地工作。

当我合并这两个应用程序时出现问题。甚至当我只是将这些行放进去时:

INCLUDEPATH += "/usr/local/include/opencv4"
LIBS += `pkg-config --libs opencv4`

在我的QT窗口小部件应用程序的.pro文件上,以便我可以在该应用程序上使用opencv,它会给我这些警告和错误:

libEGL warning: DRI2: failed to authenticate
qt5ct: using qt5ct plugin

(rpi2:1613): GLib-GObject-WARNING **: cannot register existing type 'GtkWidget'

(rpi2:1613): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(rpi2:1613): GLib-GObject-WARNING **: cannot register existing type 'GtkBuildable'

(rpi2:1613): GLib-GObject-CRITICAL **: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed

(rpi2:1613): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed

(rpi2:1613): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(rpi2:1613): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed

我尝试对此进行研究,发现可能的原因可能是QT升级到5.7.0-1时,小部件样式GTK无法用于QT5应用程序(我看到了{{3} }。解决此问题的方法是将这个QT_STYLE_OVERRIDE=gtk2或这个QT_QPA_PLATFORMTHEME=gtk2放在我的/ etc / environment上,然后重新启动。但是他们两个都不起作用。

我需要怎么做才能解决此问题?

1 个答案:

答案 0 :(得分:0)

使用qt5ct更改了多个设置后,我遇到了同样的错误。某些应用程序(例如VirtualBox,甚至qt5ct)都不再运行。

解决方案是清理qt5ct配置:

~/.config/qt5ct/qt5ct.conf