#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.
Надеюсь, это поможет.