![](/img/trans.png)
[英]QVariantMap DBusMenuExporterDBus GLib-GObject-CRITICAL GLib-GObject-WARNING
[英]GLib-GObject Warning and Errors when I merge two working app made using QTCreator on a Raspberry Pi
我有兩個應用程序是使用QTCreator(基於 Qt 5.7.1 的 Qt Creator 4.2.0)在我的Raspberry Pi 3 Model B+ (Raspbian 9.6 stretch) 上創建的。
第一個應用程序是一個使用 opencv 的非 qt 普通 C++ 應用程序。 應用程序將在哪里進行人臉檢測。 第二個應用程序是一個 QT Widgets 應用程序,其中我只有一些 QDialogs。
這兩個應用程序都在 pi 上構建和運行。 他們完美地運行並做他們應該做的事情。 盡管 QT Widget 應用程序在運行時發出此警告:
libEGL warning: DRI2: failed to authenticate
qt5ct: using qt5ct plugin
但它仍然工作得很好。
當我合並這兩個應用程序時,問題就來了。 即使我只是把這些行:
INCLUDEPATH += "/usr/local/include/opencv4"
LIBS += `pkg-config --libs opencv4`
在我的 QT Widget 應用程序的 .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 應用程序(我在這里看到了)。 解決方法是將這個QT_STYLE_OVERRIDE=gtk2
或這個QT_QPA_PLATFORMTHEME=gtk2
放在我的 /etc/environment 然后重新啟動。 但他們兩個都沒有工作。
我需要做什么來解決這個問題?
在使用qt5ct
更改了幾個設置后,我遇到了同樣的錯誤。 一些應用程序(例如VirtualBox
,甚至qt5ct
)不再運行。
解決方案是清理 qt5ct 配置:
~/.config/qt5ct/qt5ct.conf
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.