问题标签 [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.
python - 运行 QtRemoteObjects 时出现“未分配动态元对象”
我尝试使用共享两个以上的对象,但在运行client.pyQRemoteObjects
示例时收到“未分配动态元对象”警告,我无法找出发生了什么,我的示例工作正常,谁能给我一些建议?
服务器.py
客户端.py
在我python server.py
在一号航站楼运行并python client.py
在二号航站楼运行之后。我在二号航站楼收到了如下警告。
qt - QRemoteObjectRegistryHost 和 QRemoteObjectHost 有什么不同?
我是新手QRemoteObjects
,我了解直接连接与动态副本的用法。但我不了解使用注册表机制连接到远程节点QRemoteObjectRegistryHost
。我对、和之间的关系感到困惑QRemoteObjectHost
,谁能给我简单的解释?QRemoteObjectNode
QRemoteObjectReplica
在注册表方法
服务器中使用这样的代码
客户使用
QUrl('local:registry')
和有什么区别QUrl('local:replica')
?
我认为QRemoteObjectHost(QUrl('local:replica'), QUrl('local:registry'))
这种方法是多余的。
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 自动生成的代码时不会发生任何奇怪的事情,我尝试将副本源放在一个单独的库中:
但问题仍然存在。如果我没有在每个目标中明确包含自动生成的源,则缺少符号。
c++ - 无法使用 QML 远程对象连接错误:“connectionToSource 为空”
我正在尝试使用 Qt Remote Objects 来创建客户端服务器应用程序。但是遇到了一个问题,说“connectionToSource 为空”。如何设置源连接?
我正在使用 .rep 文件创建服务器。我使用的代码如下:
数据模型
服务器代码
// DataBroadcaster.cpp
// 服务器代码主函数
客户代码
QML 代码
执行:
我无法弄清楚我错过了什么。如果有人对如何解决或在哪里寻找有任何想法,请提出建议。
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.
qt - 从源中删除副本 | Qt 远程对象
我有一个应用程序,当时只有一个副本可以与源通信,但希望允许另一个副本超越通信。为此,我需要一种方法
- 确定当前是否有任何副本连接到源
- 从源中删除副本
我可以在传输/TCP 层实现它,但认为用远程对象本身来实现它会更干净。
如果有其他方法可以做类似的事情,请告诉我。
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
我的构建目录,我不确定这是否是一个好主意。
也许有更好的方法,或者我不了解一些基本原理?
visual-studio - 在 Visual Studio 中使用 Qt 远程对象(带有 qt 插件)
我想使用 Visual Studio 与 Qt 远程对象一起开发一个程序,但我没有找到让它工作的正确方法。根据此日志,Qt Visual Studio 工具应该从 2.4.0 版开始支持 Qt 远程对象管理。但是我不明白在项目 Qt 设置的哪个字段中插入 REPC_SOURCE 值。有人可以给我正确的提示吗?
qt - 如何使用 QT 远程对象从源向副本发出信号
如何从源 c++ 文件发出信号并使用副本文件中的连接捕获它。我已经在代表文件中声明了信号和发出信号的插槽。尝试使用 Connections: 捕获信号:并将目标作为副本对象。我在客户端 qt 引擎中设置了副本对象。//.rep 文件类测试 { SLOT(test()); 信号(测试信号());}
//main.qml 在客户端 Connections { target: Interfacereplica onTestsignal: { console.log("Alert!!!"); }