带复制和赋值的 C++ Qt 反射

2023-12-21

As the QObject文档 http://qt-project.org/doc/qt-4.8/qobject.html#no-copy-constructor-or-assignment-operator和许多其他人解释说,QObject有一个身份,因此隐藏其复制构造函数和赋值运算符。

但是,我不是源自QObject用于其动态属性功能或信号/时隙功能。我只想反射,或访问的能力Foo::staticMetaObject.

class Foo : public QObject {
    Q_OBJECT
    Q_ENUMS(Color)
public:
    enum Color { Blue, Red, Pink };
private:
    Color color;
};

Q_DECLARE_METATYPE(Foo::Color)

那我就无法复制了Foo with:

Foo a;
Foo b;
a = b;

在这种情况下允许复制和分配的最佳方法是什么?我绝对需要编写复制构造函数和赋值运算符吗?他们会是什么样子?反思还会起作用吗?


如果您只对反思感兴趣

  • 班级名称,
  • 枚举和标志(Q_ENUMS、Q_FLAGS),
  • 班级信息(Q_CLASSINFO http://doc.qt.nokia.com/latest/qobject.html#Q_CLASSINFO),

您可以使用Q_GADGET代替Q_OBJECT http://qt-project.org/doc/qt-5.1/qtcore/qobject.html#Q_OBJECT:

class Foo {
    Q_GADGET
    Q_ENUMS(Color)
public:
    enum Color { Blue, Red, Pink };
private:
    Color color;
};

这将声明和定义Foo::staticMetaObject.

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

带复制和赋值的 C++ Qt 反射 的相关文章

  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • 替换 ASP.NET vNext 中的 HttpHandler

    我读到 HttpHandlers 不是 ASP NET 5 vNext 的一部分 是否有可以使用的替代品 其工作原理相同 我正在寻找一种可以根据实体的 id 加载图像的解决方案 如果该图像不存在 则应显示 非图像 图像 这与 http 处理
  • 在 sp_execute_external_script 中使用时出现 pyodbc.OperationalError

    我的 Python 代码在从 PyCharm 运行时运行良好 但是当我使用 SQL Server 运行相同的代码时sp execute external script 我收到错误 知道这是怎么回事吗 Python代码 import pyod
  • YCM 找不到我的标头?

    我有以下文件夹结构 include ctset hashtable h set h src hashtable hashtable c And in hashtable c包括 include ctset hashtable h 但 YCM
  • CSS - 浮动到最大宽度

    所以我在半弹性容器中制作一排物品 左侧有一个个人资料图像 然后内容浮动到其右侧 两者都向左浮动 我想做的是使内容浮动为最大可能宽度而不是最小可能宽度 作为浮动原因 CSS container max width 800px min widt
  • 保存身份验证令牌的最佳方法?

    我一直致力于用 C 实现 api 实施进展顺利 但我确实遇到了一个问题 当我的图书馆对 api 进行授权时 我有一个 auth token 我用它来对 Web 服务进行后续查询 令牌需要在程序运行之间保留 因为它对用户来说保持不变 尽管我确
  • 使用堆算法生成排列

    我正在尝试使用我在维基百科中找到的堆算法生成数组的所有排列 这是我到目前为止所尝试的 n lt 3 A lt c 1 2 3 perm lt function n A if n 1 print perm for i in length A
  • AlertDialog setOnShowListener 从未调用过

    我使用稍微不同的方法 以便在按下按钮时保持对话框打开 AlertDialog Builder builder new AlertDialog Builder NewTableActivity this builder setTitle R
  • Delphi 10.2 for Win64 发布目标下的 FillChar 和 StringOfChar

    我有一个关于 Delphi 10 2 Pascal 编程语言中特定编程问题的问题 StringOfChar 和 FillChar 在 2012 年之前发布的 CPU 上的 Win64 版本构建下无法正常工作 FillChar 的预期结果只是
  • 使用bool(返回类型)来处理异常或将异常传递给客户端?

    我正在尝试找出处理异常的最佳方法 我的应用程序有多个层 并开始使用 BOOL 返回类型 即如果失败则返回 False 如果成功则返回 True 这在 SaveMyRecord somerecord 等方法中非常有效 因为我传入值并且不需要返
  • 如何在 Laravel 中从外键查看表字段

    我是 Laravel 的新手 不擅长语法 我想通过外键 该表的 ID 查看另一个表的值 https ibb co pXRFRHn https ibb co pXRFRHn你可以在这张图片中看到我在用户和类别下获得了 id 我想要与这些 id
  • LibGdx 如何对 HP Bar 进行编程?

    我目前正在尝试使用 LibGdx 编写游戏 我的游戏有很多结构部分 我现在正在寻求让游戏向玩家返回信息 我能想到的 UI 最简单的概念是 HP 条和弹药计数器 用于子弹 箭头等 这可以通过我的 GameScreen 类中的舞台和演员来完成吗
  • .NET Core 128kb 部署到 Azure 应用服务的文件大小限制

    我有一个在 Azure 应用服务实例上运行的 NET Core 2 0 Web 应用程序 当我尝试使用上传文件时file CopyToAsync 如果文件大于 128kB 则上传失败且没有诊断输出 某些照片类型 例如 png 即使大小有几
  • 如何将 List 的值而不是引用复制到另一个列表中?

    也就是说 在不引用同一对象的情况下 我需要将一个列表的元素值复制到另一个列表中 这些是列表 List
  • 编译期间的“Ignoring InnerClasses attribute”警告输出是什么?

    我是 Android 新手 正在使用Ical4j用于解析 ICS Outlook 日历 文件的库 但是 当我在 Eclipse 中构建应用程序时 控制台中多次出现以下警告 2010 07 22 15 58 31 Google 日历上传 警告
  • 排除重叠间隔

    我有两个间隔列表 我想从 list1 中删除 list2 中已存在的所有时间 例子 清单1 0 10 15 20 List2 2 3 5 6 Output 0 2 3 5 6 10 15 20 有什么提示吗 当时尝试删除一个间隔 但似乎我需
  • Python Flask 应用程序未随 sys exit 退出[重复]

    这个问题在这里已经有答案了 我希望能够使用如下 http 请求远程终止我的 Flask 应用程序 import flask import sys master flask Flask name master route shutdown d
  • Python 将 URL JSON 响应转换为 pandas 数据帧

    您好 我正在使用以下代码从 Python 调用 Web 服务 response urllib request urlopen req string response read decode utf 8 json obj json loads
  • MBCalendar套件框架如何添加到我的项目中

    I used MBCalendar套件框架 并成功添加到我的项目中 但问题是月份和日期无法显示模拟器 本周和今年的展会中只有一场顶级酒吧展会 我附上了我的输出快照 请找到它并在下面显示 我想在用户界面中成功显示日历 怎么可能请帮忙 impo
  • 如何在perl中动态加载模块并执行方法

    我正在跟进此事question https stackoverflow com questions 6336270关于 Perl Web 服务 我已经设法从主程序加载和执行模块 每个模块都是这样的 usr bin perl package
  • 带复制和赋值的 C++ Qt 反射

    As the QObject文档 http qt project org doc qt 4 8 qobject html no copy constructor or assignment operator和许多其他人解释说 QObject