带复制和赋值的 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 反射 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 替换 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