问题标签 [moc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
691 浏览

model - Kahn 过程网络和 Actor 模型之间的区别

我想知道卡恩流程网络和演员模型之间的实际区别是什么。事实上,如果我查看定义,它们都是计算实体(在两种情况下都称为 Actors ......)通过无界缓冲区交换消息的模型。此外,在这两种情况下,这些消息都是异步发送的,因为过程总是可以发送消息。它不需要等待收件人准备好接收。

因此我的问题是,有什么实际区别吗?

非常感谢 !

0 投票
3 回答
5440 浏览

ios - 当它们是两个视图之间的导航控制器时,如何将 managedObjectContext 从 appDelegate 传递给第一个 ViewController

在研究并试图弄清楚如何解决以下问题时,我已经用键盘敲打了 3 天。

我有一个看起来像这样的故事板:

初始应用启动箭头 -> 到导航控制器 -> 到主视图控制器。

我的 appDelegate 正在创建 managedObjectContext 并用数据填充一些实体(仅用于测试目的,一旦我准备好与外部源集成,它将被删除)。这工作很好。现在我的问题是我不知道如何将 MOC 从 appDelegate 传递到我的第一个 ViewController,因为导航控制器挡住了路。我当前在 appDidFinish 方法中的代码如下所示:

现在,当我将情节提要中的应用程序启动箭头更改为指向我的 mainMenuViewController 时,我的代码可以工作,但是我在所有视图中都丢失了导航栏。我也知道如何将 MOC 从我- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender的 mainMenu通过.

我已经在这个站点(和其他站点)上搜索了许多线程,我只找到了“选项卡式应用程序”的解决方案,其他人希望我序列化对象,但出于我的目的,我不能这样做。(只有少数视图会收到 MOC,而其他视图将是一个视图创建和更改的通行证数据,以便在独特视图中为特定目的量身定制)

非常感谢对 iOS 和 Objective-C 中这个小块的任何帮助。先感谢您。

编辑:我得到的错误是“由于未捕获的异常而终止应用程序...... [UINavigationController setManagedObjectContext] 无法识别的选择器发送到实例......

0 投票
2 回答
2338 浏览

c++ - 如果 Q_OBJECT 宏被其他宏删除,则无法编译 MOC 文件:头文件不包含

在编译非 Qt 版本的 Qt/C++ 程序 (-DDISABLE_MYMODULE) 时,我收到以下编译器错误:

我正在使用 GNU make(不是 qmake)。我的 Makefile 为每个模块编译两个目标文件,一个直接来自 .cpp 源文件,另一个来自 .moc.cpp 源文件(这是行不通的),两者都使用 g++。此 .moc.cpp 源文件由 MOC 从 .hpp 标头创建(此过程不会引发错误)。

有问题的头文件看起来有点像这样:

如果不设置我的问题宏,整个事情将编译(然后链接,执行)就好了。如果我确实设置了它,但注释掉 QT 的问题宏,它也会编译得很好(构建一个非 Qt 版本)。

我不完全知道,MOC 用什么替换 Q_OBJECT,但它不应该仍然在我的 DISABLE_MYMODULE 内,因此被预处理器删除吗?

0 投票
2 回答
3074 浏览

c++ - QT moc.exe生成空文件,涉及type_traits的错误

我试图在 QT Creator 中构建一个 QT 项目,但出现链接错误:

由于某种原因,moc.exe元对象编译器正在创建空 moc_*.cpp 文件,并显示错误消息

我尝试moc使用在 QT Creator 中运行的标志在命令行上运行:

它返回了同样的错误。我尝试一一删除几个标志,并将其缩小到-I"c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include". 出于某种原因,当该目录位于包含路径上时,会显示“未找到相关类”错误并生成一个空的 .cpp 文件。但是,当该目录不在包含路径上时, moc.exe 可以正常工作。

由于错误消息包括:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/include/type_trait(0),我尝试type_traits在该位置重命名文件,以便无法识别它。当我这样做时, moc.exe 再次正常工作(但实际上失败了,因为 type_traits 包含在我包含的标准库文件中的某处)。所以错误是在 type_traits 的某个地方引起的

据我所知type_traits,我相信它与获取有关对象的编译类型信息有关。但我不知道为什么它会导致元对象编译器出错。为什么要这样做?moc 对 type_traits 做了什么,为什么会这样,什么是失败的?

我将非常感谢任何人可以提供的任何见解,因为这对我来说非常令人费解。

minecraftlauncher.hpp文件:

0 投票
2 回答
2288 浏览

visual-studio-2010 - Qt Moc在msbuild下并行处理多个文件

使用 Qt Visual Studio 插件,它似乎以一种无缝的方式处理了几乎所有的事情。不幸的是,它使用 msbuild 中的 CustomBuild 步骤进行 moc'ing。这导致了一个接一个的连续嘲弄。有没有办法说服 msbuild 并行执行它们 - 我厌倦了像我一样坐在桂冠上的 7 个内核。

我见过 msbuild 的 BuildInParallel,但我不确定如何在这里应用它。

msbuild 片段:

0 投票
1 回答
594 浏览

qt - waf : 将编译器标志传递给 qt 的 moc

我试图运行一个项目,使用waf它使用boostlibrary 。为了克服一个问题,我需要将-DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED参数传递给MOC. 我尝试在wscriptas中这样做

但它失败了。如何将参数传递给MOCusing waf

0 投票
2 回答
2582 浏览

xcode - 如何在 Xcode 中使用 Q_OBJECT 宏编译头文件?

我在 Xcode 中创建了与 Qt 框架链接的 C++ 项目。hello world 程序运行良好。当我添加从 QObject 派生的类并添加 Q_OBJCET 宏时,出现链接错误。

班级是

我的对象.h

我的对象.cpp

我知道我应该先使用 moc 编译 MyObject.h 并将生成的 moc_MyObject.cpp 添加到 Xcode 项目中。

在 Microsoft Visual Studio 中,我可以将此头文件配置为使用 moc 自定义工具进行编译。并将生成的 cpp 文件添加到 VS 项目中。

但这是 Xcode。我的问题是:在 Xcode 中是否有等效的方法来编译包含 Q_OBJECT 宏的头文件?

0 投票
1 回答
1055 浏览

c++ - 使qt忽略特定的头包含文件

我有一个用 qt 制作的正在运行的项目。出于构建目的,我正在使用 waf 构建工具。要从 waf 启动并运行相同的项目,我需要添加

在某些文件的末尾以避免未定义的引用。但是如果这些包含没有在 qt 中注释,我会得到找不到文件错误。你如何让 qt 忽略某些文件包含。我认为这样的事情应该可以解决问题

0 投票
1 回答
1309 浏览

visual-studio-2010 - 在 VS2010 项目中使用 Q_OBJECT 会产生未解决的外部问题

我试图在我的 Visual Studio 2010 Ultimate 项目中使用 Q_OBJECT 宏,它给了我未解决的外部错误:

我有一个使用 QMaker 的类似项目,并通过清理项目并重新运行 qmake 来解决它。问题是,VS 中没有“Qmake”按钮!

我读过几篇像这样的文章,并做了他们告诉我的一切。虽然它并没有真正帮助,因为我有一个现有的几个 .cpp 和一些头文件的项目,我想避免创建一个 .pro 文件并将代码移动到其中。

我已经安装了 VS Qt 插件,它在 VS 面板上给了我新的很酷的“Qt”按钮,虽然对未解决的外部没有帮助(可能我不知道如何正确使用它)。

我已经在我的Application.h文件(唯一一个有Q_OBJECT的文件)上通过VS中的自定义构建工具运行了moc,但这仍然没有帮助:

什么可能导致我的问题,我该如何解决?

0 投票
3 回答
1976 浏览

qt - 带有模板访问器的 Qt Q_PROPERTY

我的目标是更多的代码重用,同时保持冗长。

考虑以下示例代码:

这个编译并按预期运行。

如果您想知道为什么我会这样 - 想象一组属性,DESIGNABLE 等,但属于同一个“类” - 在这种情况下,我希望使用枚举模板类型的访问器拥有单独的属性。

取消注释属性定义,会导致以下 moc 错误:

关于如何正确混合模板和 moc 的任何想法?


回答 cmannet85 的评论,并添加更多见解 - 是的,该moc调用moc_test.cppmoc.h.

为了进一步测试和演示它,我添加了另一个属性

moc_test.cpp 前后的区别是这样的:

绝对没有什么可以阻止 moc 将整个 bar<1> 语句复制到QMetaObject::ReadPropertyswitch 语句中 - 但它以某种方式在 <> 模板标签上出现了错误。