首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt-Jambi冗长,特别是QtDynamicMetaObjectPrivate

Qt-Jambi冗长,特别是QtDynamicMetaObjectPrivate
EN

Stack Overflow用户
提问于 2013-10-02 18:27:10
回答 1查看 103关注 0票数 2

当启动我的QtJambi程序时,我在控制台(Stderr)上收到了很多这种类型的消息:

代码语言:javascript
复制
QtDynamicMetaObjectPrivate::QtDynamicMetaObjectPrivate(0x7f75805bfe90) initialize q->d=0x7f75806786e0 m_original_signatures[1]="actionNew()"
QtDynamicMetaObjectPrivate::QtDynamicMetaObjectPrivate(0x7f75805bfe90) initialize q->d=0x7f75806786e0 m_original_signatures[2]="showAnalysisForm()"
QtDynamicMetaObjectPrivate::QtDynamicMetaObjectPrivate(0x7f75805bfe90) initialize q->d=0x7f75806786e0 m_original_signatures[3]="actionOpen()"
QtDynamicMetaObjectPrivate::QtDynamicMetaObjectPrivate(0x7f75805bfe90) initialize q->d=0x7f75806786e0 m_original_signatures[4]="actionSave()"
QtDynamicMetaObjectPrivate::QtDynamicMetaObjectPrivate(0x7f75805bfe90) initialize q->d=0x7f75806786e0 m_original_signatures[5]="actionSaveAs()"

函数名(actionNew等)在我的程序中是Qt槽。但是,为什么我会看到这些消息,以及如何摆脱它们(这样它们就不会隐藏重要的消息)?

我已经安装了一个QMessageHandler (我认为相当于qInstallMsgHandler),它现在会给我一些警告消息,但上面的消息不会通过我的消息处理程序传递。

EN

回答 1

Stack Overflow用户

发布于 2013-12-04 06:05:36

这似乎是调试过程中的残余代码。在.../qt-jambi-qtjambi-community/src/cpp/qtjambi/qtdynamicmetaobject.cpp中,你会发现:

代码语言:javascript
复制
for (int i=0; i<m_method_count + m_signal_count; ++i) {
    jobject lr_string = env->GetObjectArrayElement(original_signatures, i);
    m_original_signatures[i] = qtjambi_to_qstring(env, (jstring) lr_string);
fprintf(stderr, "QtDynamicMetaObjectPrivate::QtDynamicMetaObjectPrivate(%p) initialize q->d=%p m_original_signatures[%d]=\"%s\"\n", this, &q->d, i, qPrintable(m_original_signatures[i]));
#ifdef QTJAMBI_DEBUG_LOCALREF_CLEANUP
    env->DeleteLocalRef(lr_string);
#endif
}

也许一个新的下载可以解决这个问题。或者,您可以尝试自己删除fprintf()并重新构建。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19134838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档