2011-04-09 34 views
3

我是编程新手。我正在创建一个Qt GUI应用程序。这是一个小词混杂的游戏。 问题是,每当我建设我得到它下面的命令提示符下输出之后,从命令提示符下启动该程序:QVariantMap DBusMenuExporterDBus GLib-GObject-CRITICAL GLib-GObject-警告

JumbleGame 1.0 

Launching Application..... 

QVariantMap DBusMenuExporterDBus::GetProperties(int, const QStringList&): Condition failed: action 

上两条线都OK,我打印了出来,但什么是QVariantMap DBusMenuExporterDBus :: GetProperties中(INT,常量QStringList中&):条件失败:行动

启动应用程序的正常工作后,但是,当我关闭它我得到下面的命令提示符下输出:

(`<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 

什么都THES e错误意味着什么,我该如何删除它们。 我的代码完全在qt C++

在此先感谢。

回答

0

这听起来像你创建一个菜单,你添加菜单项没有行动或你的行动不再存在。

DBus是Posix体系结构中使用的一种具有Windows端口的消息传递系统。 QVariantMap可能与Qt内部管理一些你放在一起的GUI元素有关。

所以很有可能你在构造函数的堆栈中创建了一些GUI元素,当你离开你的构造函数时,那些元素超出了范围,并且你的GUI现在有一堆坏指针。

所以要解决这个问题,请确保根据Qt Object Model在堆上有Qt元素/小部件/ objects

希望有所帮助。