QML:在 QML 中使用 cpp 信号始终会导致“无法分配给不存在的属性”

2024-01-12

我只想将 cpp 信号连接到 qml 插槽并尝试不同的方法,但它总是在运行时导致相同的 QML 错误:无法分配给不存在的属性“onProcessed”! Why?

这是我的 Cpp 对象:

#include <QObject>

class ImageProcessor : public QObject
{
    Q_OBJECT
public:
    explicit ImageProcessor(QObject *parent = 0);

signals:
    void Processed(const QString str);
public slots:
    void processImage(const QString& image);
};

ImageProcessor::ImageProcessor(QObject *parent) :
    QObject(parent)
{
}

void ImageProcessor::processImage(const QString &path)
{
    Processed("test");
}

这是我的main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QtQml>

#include "imageprocessor.h"

int main(int argc, char *argv[])
{
    qmlRegisterType<ImageProcessor>("ImageProcessor", 1, 0, "ImageProcessor");

    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:///main.qml")));

    return app.exec();
}

这是我的 QML 文件

import QtQuick 2.2
import QtQuick.Window 2.1
import QtMultimedia 5.0

import ImageProcessor 1.0

Window {
    visible: true
    width: maximumWidth
    height: maximumHeight

    Text {
        id: output
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }

    VideoOutput {
        anchors.fill: parent
        source: camera
    }

    Camera {
        id: camera
        // You can adjust various settings in here

        imageCapture {
            onImageCaptured: {
                imageProcessor.processImage(preview);
            }
        }
    }

    MouseArea {
        anchors.fill: parent
        onClicked: {
            camera.imageCapture.capture();
        }
    }

    ImageProcessor{
        id: imageProcessor
        onProcessed: {
            output.text = str;
        }
    }
}

我正在使用 QT 5.3.0 和 Qt Creator 3.1.1,这甚至建议我已处理并正确突出显示它。


要从 C++ 对象公开信号,您必须遵循一些命名约定:

  • 在 C++ 代码中,信号必须以小写字母开头,即void yourLongSignal()
  • QML 中的信号处理程序将被命名on<YourLongSignal>

因此,您在代码中唯一需要编辑的就是更改

signals:
    void processed(const QString& str);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QML:在 QML 中使用 cpp 信号始终会导致“无法分配给不存在的属性” 的相关文章

  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • Kubernetes:minikube 持久卷本地文件系统存储位置

    我已经阅读了所有文档和一些 SO 帖子 但找不到这个问题的答案 minikube 将其持久卷保存在我的本地 Mac 文件系统中的什么位置 Thanks 首先请记住 Kubernetes 运行在Minikube https minikube
  • NodeJS Express req.session 未定义

    就是想不通这个 我发现的关于快速会话的所有内容都表明它确实有效 但对我来说并非如此 我的整个应用程序配置 app configure gt app set port process env PORT 3000 app set views p
  • 通过同级子视图传播触摸事件?

    我有一堆子视图 它们都有用户交互部分 子级 并且全屏 问题是 如果我触及堆栈顶部的非交互式部分 它不会将该触摸传播到堆栈的其余部分 我的设置 视图A view B 全屏容器 本身不是交互式的 但具有交互式子视图 视图B1 互动 查看B2 互
  • 以编程方式向 Woocommerce 3.2+ 中的订单添加折扣

    在 woocommerce 中 我们可以使用优惠券功能为任何订单添加折扣 固定金额 百分比金额 是否可以以编程方式向任何订单添加折扣金额 其中折扣金额可以是任意金额 任何帮助将不胜感激 以编程方式为订单提供折扣的唯一可用功能 正在欺骗Fee
  • 控制器未收到英国格式的 MVC3 日期

    给定这个虚拟机 public class ApplicationDTO BaseDTO public DateTime Date get set public int JobId get set public int Status get
  • WPF 动画/UI 功能性能和基准测试

    我正在为某些业务线的一些奇特的 WPF UI 工作做一个相对较小的概念验证 即使没有太疯狂 我在使用许多功能时已经看到一些非常糟糕的性能 我认为这些功能是首先考虑使用 WPF 进行 UI 构建的主要原因 我在这里问了一个问题 为什么我的动画
  • Spring WS WebServicesTemplate/Jaxb2Marshaller 客户端查看原始 xml?

    是否可以使用 WebServicesTemplate 和 Jxb2Marshaller 作为编组引擎来查看 Spring WS 客户端的请求和响应 我只是想记录 xml 而不是对原始 xml 执行任何操作 See the spring ws
  • 核心数据:在实体 中未找到键路径错误

    谁能告诉我这段代码有什么问题吗 它会引发以下错误并导致应用程序崩溃 reason keypath Studies patients PatientName not found in entity
  • 如何让 babelify 10 定位浏览器

    我想要的是 使用最新版本的库 让它在 IE 11 中运行 我正在构建一个 React 应用程序 为了运行测试 我需要 testing library react 为了在浏览器中运行测试 我需要 browserify 为了在我支持的每个浏览器
  • main.js:2 Uncaught Referenceerror: firebase 未定义 [重复]

    这个问题在这里已经有答案了 我正在尝试将我的 html 联系表单与 firebase 链接 但遇到错误 未捕获的引用错误 firebase 未定义 在我的 main js 文件中 我在 html 文件中很好地定义了 CDN 但在 main
  • 什么是 Swift 中的部分应用闭包#1

    我试图理解此崩溃报告 但无法理解 因为函数 applySettings 不是从 init 调用的 如崩溃报告中所示 Swift 中的 部分申请closure 1 是什么 这是 init 函数所需的代码 public override ini
  • 位置:修复Chrome Mobile中的滑动bug

    如果您查看我的网站 http alexander pastor de在手机上的 Chrome Mobile 中 向任何方向滚动时 页脚都不会保持原样 对原因或解决方法有什么想法吗 页脚的 CSS 代码如下所示 footer width 10
  • 我可以对 GroupTemplate 或 ItemTemplate 进行编号吗?

    我想使用 GroupTemplate 将项目列表分成组 但是 我需要按顺序对每个组进行编号 以便我可以链接到它们并实现一些 JS 分页 我正在绑定到 IEnumerable 这是一些伪代码 我希望输出看起来像这样 a href group1
  • 如何 grep 查找所有少于 4 个字符的单词?

    我有一本字典 单词之间用换行符分隔 你可以这样做 egrep x 1 3 myfile 这也会跳过空白行 从技术上讲 空白行不是单词 不幸的是 上面的正则表达式会将缩写中的撇号计为字母 并将连字符复合词中的连字符计为字母 在字母数如此少的情
  • Python 中 minidom 的内存错误

    我在 Python 中遇到了带有 minidom 解析器的 MemoryError 我正在读取 8000 个小文件 大部分小于 50 Kb 在读取 2500 个后出现此错误 Traceback most recent call last F
  • Mysql为json类型列设置默认值

    我听说8 0 13之前的mysql版本接受json类型列的默认值 所以我使用cmd ALTER TABLE templates CHANGE COLUMN values JSON NOT NULL DEFAULT 但收到错误 Error C
  • ASP.Net 控件与 HTML 控件性能

    我听说我们应该避免使用默认 ASP Net 控件 因为它们在 Viewstate 等方面很重要 因此 每当我只想显示信息时 我就考虑使用 HTML 标签 并使用 Eval 函数在 href 或 src 属性中插入服务器端代码 但我也听说 E
  • Grails GORM“或”不与关联一起工作

    在下面的示例中 我希望 Product searchAll 能够匹配两者 添加剂和产品 但似乎忽略了eq name taste class Additive String flavor static belongsTo product Pr
  • 如何添加WPF treeView节点点击事件获取节点值

    我有一个TreeView在wpf中如何获得TreeView节点单击事件以便我可以获得用户单击的节点的值 Xaml
  • QML:在 QML 中使用 cpp 信号始终会导致“无法分配给不存在的属性”

    我只想将 cpp 信号连接到 qml 插槽并尝试不同的方法 但它总是在运行时导致相同的 QML 错误 无法分配给不存在的属性 onProcessed Why 这是我的 Cpp 对象 include