问题标签 [qtremoteobjects]

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 回答
225 浏览

python - 运行 QtRemoteObjects 时出现“未分配动态元对象”

我尝试使用共享两个以上的对象,但在运行client.pyQRemoteObjects示例时收到“未分配动态元对象”警告,我无法找出发生了什么,我的示例工作正常,谁能给我一些建议?

服务器.py

客户端.py

在我python server.py在一号航站楼运行并python client.py在二号航站楼运行之后。我在二号航站楼收到了如下警告。 1

0 投票
1 回答
245 浏览

qt - QRemoteObjectRegistryHost 和 QRemoteObjectHost 有什么不同?

我是新手QRemoteObjects,我了解直接连接与动态副本的用法。但我不了解使用注册表机制连接到远程节点QRemoteObjectRegistryHost。我对、和之间的关系感到困惑QRemoteObjectHost,谁能给我简单的解释?QRemoteObjectNodeQRemoteObjectReplica

在注册表方法
服务器中使用这样的代码

客户使用

QUrl('local:registry')和有什么区别QUrl('local:replica')
我认为QRemoteObjectHost(QUrl('local:replica'), QUrl('local:registry'))这种方法是多余的。

0 投票
0 回答
66 浏览

c++ - 由于来自 QtRemoteObjects 副本定义的未解析符号导致链接器错误

我正在开发使用Qt 远程对象的项目,并且我想使用自动生成的ReplicaDefSimpleSource类来测试我的一个组件(有关详细信息,请参见下面的示例)。但是,当我尝试将测试可执行文件与我的库链接时,出现以下链接器错误:

MyLib.dll用 DependencyWalker 检查了我的,所需的符号在那里:

我也检查dumpbin /EXPORTS Debug/MyLib.lib | grep "static struct QMetaObject"了,所需的符号又在那里:

为了构建我使用 CMake 的项目:

要重现该问题,您需要以下文件:

  • CMakeLists.txt
  • main.cpp: 是的,我知道这不是你应该如何测试 Qt 代码,我只是将它用作最小示例(例如它没有QApplication
  • ReplicaDef.rep
  • a.cpp:它实际上可以是任何东西,我只是放了一些虚拟函数来显示来自的符号a.cpp是可见的

作为一种解决方法,我可以在我的测试中明确包含自动生成的源,但这不是可接受的解决方案。

提供的示例当然可以在任何正常系统上编译和工作,我只是在 windows 上遇到问题,我不得不使用它(很抱歉问这个平台的问题)。

我应该怎么做才能使用自动生成的副本类来测试我的系统,而不需要多次编译它们的源?

作为一个附带问题:如果我在主可执行文件中包含副本源,为什么链接器不会抱怨多个定义?

=== 编辑 ===

为了确保当我用我的手写代码编译 Qt 自动生成的代码时不会发生任何奇怪的事情,我尝试将副本源放在一个单独的库中:

但问题仍然存在。如果我没有在每个目标中明确包含自动生成的源,则缺少符号。

0 投票
1 回答
314 浏览

c++ - 无法使用 QML 远程对象连接错误:“connectionToSource 为空”

我正在尝试使用 Qt Remote Objects 来创建客户端服务器应用程序。但是遇到了一个问题,说“connectionToSource 为空”。如何设置源连接?

我正在使用 .rep 文件创建服务器。我使用的代码如下:

数据模型

服务器代码

// DataBroadcaster.cpp

// 服务器代码主函数

客户代码

QML 代码

执行:

我无法弄清楚我错过了什么。如果有人对如何解决或在哪里寻找有任何想法,请提出建议。

0 投票
1 回答
53 浏览

qt - 如何在qmake中指定repc的输出路径?

在 qmake 我有

rep_SomeRPC_source.h在项目的根目录中生成。我想将它存储在其他地方以保持 root 尽可能干净。
文档说repc creates the rep_SimpleSwitch_source.h header in the build directory that you specify。但如何指定build directory
我看到的唯一选择是改变OUT_PWD,但文档说Do not attempt to overwrite the value of this variable.

0 投票
1 回答
40 浏览

qt - 从源中删除副本 | Qt 远程对象

我有一个应用程序,当时只有一个副本可以与源通信,但希望允许另一个副本超越通信。为此,我需要一种方法

  • 确定当前是否有任何副本连接到源
  • 从源中删除副本

我可以在传输/TCP 层实现它,但认为用远程对象本身来实现它会更干净。
如果有其他方法可以做类似的事情,请告诉我。

0 投票
1 回答
47 浏览

qt - cmake qt5_generate_repc() 将 rep 标头放在 CMAKE_CURRENT_BINARY_DIR

我正在尝试确定构建项目的正确方法。由于要求,我使用 cmake 而不是 qmake。在我的 Qt 项目中,我使用的是Remote Objects

问题是qt5_generate_repc从文件生成我的标头.rep并将其放置在CMAKE_CURRENT_BINARY_DIR并使其可访问以包含我需要target_include_directories我的构建目录,我不确定这是否是一个好主意。

也许有更好的方法,或者我不了解一些基本原理?

0 投票
1 回答
58 浏览

visual-studio - 在 Visual Studio 中使用 Qt 远程对象(带有 qt 插件)

我想使用 Visual Studio 与 Qt 远程对象一起开发一个程序,但我没有找到让它工作的正确方法。根据此日志,Qt Visual Studio 工具应该从 2.4.0 版开始支持 Qt 远程对象管理。但是我不明白在项目 Qt 设置的哪个字段中插入 REPC_SOURCE 值。有人可以给我正确的提示吗?

0 投票
1 回答
66 浏览

qt - 如何使用 QT 远程对象从源向副本发出信号

如何从源 c++ 文件发出信号并使用副本文件中的连接捕获它。我已经在代表文件中声明了信号和发出信号的插槽。尝试使用 Connections: 捕获信号:并将目标作为副本对象。我在客户端 qt 引擎中设置了副本对象。//.rep 文件类测试 { SLOT(test()); 信号(测试信号());}

//main.qml 在客户端 Connections { target: Interfacereplica onTestsignal: { console.log("Alert!!!"); }