moc相关内容

Qt/Qml 和方法重载

刚从 Qml 中调用重载的 C++ 方法并试图了解其背后的原因时,遇到了 Qt 框架的一个奇怪行为.假设我有一个类似 QList 的类,具有以下方法: ...Q_SLOT void append(const QVariant &item);Q_SLOT void append(const QVariantList &items);Q_SLOT void insert(int ..
发布时间:2022-01-19 23:09:55 C/C++开发

Qt 5 cmake 失败,未定义对带有 inc & 的 hello world 上的 vtable 的引用src 作为子目录

更新 2 在搞砸了一点(以及对生成的 Makefile 进行了一些编辑)之后,看起来正在发生的事情是 moc 没有正确处理 MainWindow.h (包含在 main.cpp 和 MainWindow.cpp 除非它与包含它的源文件位于同一文件夹中. Moc 在 MainWindow.cpp 上运行,不处理包含,因此看不到 Q_OBJECT 宏,因此继续生成一个空的输出文件.我不确定 ..
发布时间:2022-01-11 15:36:40 C/C++开发

我可以为 QObject 的子类设置复制构造函数吗?

这里 我们可以读到没有复制构造和复制赋值运算符可评估.但是这里我们可以读到qRegisterMetaType 和 Q_DECLARE_METATYPE 必须有公共默认构造函数、公共复制构造函数和公共析构函数.问题是:谁在说谎?还是我没有正确理解? 解决方案 一切都是真的: 1.QObject不能被复制,它的所有后代也不能被复制. 2. Q_DECLARE_METATYPE 接受带有公共 ..
发布时间:2021-12-09 17:13:22 C/C++开发

在 main.cpp 中定义信号和槽

我在 main.cpp 中用我自己的类编写了一个小程序.代码如下: #include #include #include 类 MyWidget :公共 QWidget {//Q_OBJECT民众:MyWidget(QWidget* parent = 0);QLabel* 标签;QString 字符串;信号:公共插槽:void setTextLabel();};void MyWidget::set ..
发布时间:2021-12-09 16:56:53 C/C++开发

Qt moc 在头文件中实现?

是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它,而不是将它们拆分为 .h 和 .cpp 文件? 解决方案 我相信这是最好的方法.这实际上是我现在构建所有对象的方式. Qt 4.8.7 Works.pro: 来源 += \主程序标题 += \窗口.h \我的小工具.h main.cpp #include #include "Window.h"int main( ..
发布时间:2021-12-09 16:34:43 C/C++开发

CMake和Qt5 AUTOMOC错误

我有一个使用Qt5的项目,并且有一个用于创建Visual Studio解决方案的 CMakeLists.txt 文件. 这是我的 CMakeLists.txt 的摘录 cmake_policy(SET CMP0020 NEW)设置(CMAKE_AUTOMOC ON)find_package(Qt5必需组件核心小部件)设置(COMMON_INCLUDE_DIR $ {PROJECT_SO ..
发布时间:2021-04-22 19:47:54 其他开发

在main.cpp中定义信号和插槽

我在main.cpp中编写了一个带有自己的类的小程序.这里的代码: #include#include#include类MyWidget:公共QWidget {//Q_OBJECT上市:MyWidget(QWidget *父代= 0);QLabel *标签;QString字符串;信号:公共插槽:setTextLabel( ..
发布时间:2021-04-19 18:40:03 C/C++开发

MOC将名称空间添加到类名称

在编译项目时,我遇到了一个非常奇怪的问题. MOC似乎正在向要移动的类名添加一个名称空间,尽管在文件/类的任何地方都没有提及. 但是,命名空间存在于我使用的库中,但隐藏在头文件中很远,并且我不在UI文件中使用它.这是MOC生成的: const QMetaObject SmpTl::CaptureController::staticMetaObject = { { &QObject::s ..
发布时间:2020-06-30 23:25:15 C/C++开发

如何使Qt Moc自动化?

我必须从Qt命令提示符处运行以下命令:qmake -project然后make,这给了我带有Moc文件的调试文件夹. 奇怪的是,这是我的PC生成moc_.cpp文件的唯一方法. 那么我该如何自动执行这些命令的任务,而不必再次使用这些命令? 解决方案 您不应多次运行qmake -project. -project选项旨在为您提供模板项目文件供您编辑.每次要构建时,相当于在IDE中执行 ..
发布时间:2020-06-30 23:25:12 C/C++开发

QMake MOC文件被名称空间混淆

我有一个看起来像这样的文件: #ifndef ENGINE_PLATFORM_AREAEDITOR_H #define ENGINE_PLATFORM_AREAEDITOR_H #include #include "../Widgets/QtSfmlWidget.h" namespace Engine { namespace World { class Area; } ..
发布时间:2020-06-30 23:24:03 其他开发

Qt/Qml和方法重载

在从Qml内部调用重载的C ++方法并试图了解其背后的原因时,就遇到了Qt框架的怪异行为.假设我有一个QList类,它具有以下方法: ... Q_SLOT void append(const QVariant &item); Q_SLOT void append(const QVariantList &items); Q_SLOT void insert(int inde ..
发布时间:2020-06-30 23:23:48 C/C++开发