QVariantMap DBusMenuExporterDBus GLib-GObject-КРИТИЧЕСКИЙ GLib-GObject-ПРЕДУПРЕЖДЕНИЕ

#c #qt #qt4

#c #qt #qt4

Вопрос:

Я новичок в программировании. Я создаю приложение с графическим интерфейсом Qt. Это небольшая игра с нагромождением слов. Проблема в том, что всякий раз, когда я запускаю эту программу из командной строки после ее сборки, я получаю следующий вывод в командной строке:

 JumbleGame 1.0

Launching Application.....

QVariantMap DBusMenuExporterDBus::GetProperties(int, const QStringListamp;): Condition failed: action
  

две верхние строки в порядке, я их напечатал, но что такое QVariantMap DBusMenuExporterDBus::GetProperties(int, const QStringListamp;): Сбой условия: действие

После запуска приложения оно работает нормально, но когда я закрываю его, я получаю следующий вывод в командной строке:

 (`<unknown>`:7312): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GObject'

(`<unknown>`:7312): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed
  

Что означают все эти ошибки и как я могу их удалить.
Мой код полностью написан на qt c

Заранее благодарю.

Ответ №1:

Звучит так, как будто вы создаете меню, и вы добавили пункты меню без действий, или ваше действие больше не существует.

DBus — это своего рода система обмена сообщениями, используемая в архитектурах Posix, которая имеет порт Windows. QVariantMap, вероятно, имеет какое-то отношение к тому, как Qt внутренне управляет некоторыми элементами графического интерфейса, которые вы собрали вместе.

Таким образом, существует большая вероятность того, что вы создали некоторые из своих элементов GUI в стеке в своем конструкторе, и когда вы покидаете свой конструктор, эти элементы выходят за пределы области видимости, и ваш GUI теперь содержит кучу неверных указателей.

Итак, чтобы исправить это, убедитесь, что у вас есть элементы Qt / виджеты / объекты в куче в соответствии с объектной моделью Qt.

Надеюсь, это поможет.