c++ - 连接信号和插槽的新方法
问题描述
我在使用以下代码行时遇到问题:
connect(m_uaProxy, CUaProxy::uaItemChanged,this, CUaHandler::onUaMsgReceived);
我正在使用 Qt 5.11.1。在 Windows 上,这可以编译并工作,但会产生以下“问题”:
错误:在没有对象参数的情况下调用非静态成员函数
在 linux 上运行相同的代码是不可能的,因为这一行正在终止编译。我想我正在使用新的信号/插槽连接方法正确运行代码。这里可能是什么情况?
方法定义为: 连接创建类中的信号:
void uaItemChanged(const MsgType msgt,
const QVariant& index,
const QVariant& value);
类中的插槽CUaProxy
:
void onUaMsgReceived(const CUaProxy::MsgType msgt,
const QVariant& index,
const QVariant& value);
解决方案
我的语法错误,这是正确的(需要函数的地址):
connect(m_uaProxy, &CUaProxy::uaItemChanged, this, &CUaHandler::onUaMsgReceived);
不知道为什么它可以在 Windows 平台上运行。
推荐阅读
- python - 如何在序列化程序/视图 Django REST 框架中合并多个模型?
- powershell - 我应该如何在控制台中为每个排序步骤输出排序结果,并且可以通过 Verbose 参数控制
- django - 多个表中的 Django 查询集
- python - 如何使用一些拆分功能在字典中提取元组数据存储
- python - 如何在 Windows 10 中使用 msiexec 安装两个 python 2.7.18 实例?
- java - Query 和 QueryMap 不适用于 Rest API
- c# - 如果我在邮递员中有文件内容,请上传文件
- angular - 基于离子(角度)中的活动选项卡显示标题标题
- reactjs - 编译器如何知道我必须在哪里放置代码?
- php - 使用 laravel 6 在线快速上传图片的最佳方法是什么?