moc相关内容
刚从 Qml 中调用重载的 C++ 方法并试图了解其背后的原因时,遇到了 Qt 框架的一个奇怪行为.假设我有一个类似 QList 的类,具有以下方法: ...Q_SLOT void append(const QVariant &item);Q_SLOT void append(const QVariantList &items);Q_SLOT void insert(int
..
更新 2 在搞砸了一点(以及对生成的 Makefile 进行了一些编辑)之后,看起来正在发生的事情是 moc 没有正确处理 MainWindow.h (包含在 main.cpp 和 MainWindow.cpp 除非它与包含它的源文件位于同一文件夹中. Moc 在 MainWindow.cpp 上运行,不处理包含,因此看不到 Q_OBJECT 宏,因此继续生成一个空的输出文件.我不确定
..
这里 我们可以读到没有复制构造和复制赋值运算符可评估.但是这里我们可以读到qRegisterMetaType 和 Q_DECLARE_METATYPE 必须有公共默认构造函数、公共复制构造函数和公共析构函数.问题是:谁在说谎?还是我没有正确理解? 解决方案 一切都是真的: 1.QObject不能被复制,它的所有后代也不能被复制. 2. Q_DECLARE_METATYPE 接受带有公共
..
我在 main.cpp 中用我自己的类编写了一个小程序.代码如下: #include #include #include 类 MyWidget :公共 QWidget {//Q_OBJECT民众:MyWidget(QWidget* parent = 0);QLabel* 标签;QString 字符串;信号:公共插槽:void setTextLabel();};void MyWidget::set
..
是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它,而不是将它们拆分为 .h 和 .cpp 文件? 解决方案 我相信这是最好的方法.这实际上是我现在构建所有对象的方式. Qt 4.8.7 Works.pro: 来源 += \主程序标题 += \窗口.h \我的小工具.h main.cpp #include #include "Window.h"int main(
..
为什么在 Qt cpp 源代码中为 .moc 文件添加一个包含很重要? 这是几个Qt示例中常用的步骤,包括这个:http://doc.qt.io/qt-5/qttestlib-tutorial1-example.html; 其中行 #include "testqstring.moc" 应该包含在文件的末尾. 我不明白为什么这是必要的. 解决方案 如果您在 中使用 Q_OBJEC
..
我目前有一个这样设置的项目: - 项目/- - 包括/--- 源代码/--- qml/--- CMakeLists.txt--- qml.qrc 还有一个 CMakeLists.txt 像这样: cmake_minimum_required(VERSION 3.1)cmake_policy(设置 CMP0071 新)包含目录(${Qt5Widgets_INCLUDE_DIRS} ${QtQm
..
我有一个使用Qt5的项目,并且有一个用于创建Visual Studio解决方案的 CMakeLists.txt 文件. 这是我的 CMakeLists.txt 的摘录 cmake_policy(SET CMP0020 NEW)设置(CMAKE_AUTOMOC ON)find_package(Qt5必需组件核心小部件)设置(COMMON_INCLUDE_DIR $ {PROJECT_SO
..
我在main.cpp中编写了一个带有自己的类的小程序.这里的代码: #include#include#include类MyWidget:公共QWidget {//Q_OBJECT上市:MyWidget(QWidget *父代= 0);QLabel *标签;QString字符串;信号:公共插槽:setTextLabel(
..
我的.pro文件如下所示: QT += core gui widgets SOURCES += a.cpp HEADERS += a.h FORMS += a.ui #Locally compiled Qt framework. Qt/out/{QtCore.framework,QtNetwork.framework..} QMAKE_LFLAGS += -L./Qt/l
..
我正在使用Qt 5.3 qmake生成Visual Studio 2013项目.在我的.pro文件中,有以下一行: MOC_DIR = $$BUILD_DIR//moc 如果我message($$MOC_DIR),则路径正确形成.但是,当我在VS中构建文件时,不会在该位置生成moc_.cpp文件,而是将其与.pro放在同一目录中.在编译过
..
我正在将Visual Studio与qt加载项一起使用,并且在构建项目时,由于我的项目中的构建规则,它会生成moc _ *.cpp文件:
..
我是Qt的新手.我正在尝试编译如下所示的小代码段: #include #include class Test:public QObject { Q_OBJECT public: Test(){qDebug()
..
在编译项目时,我遇到了一个非常奇怪的问题. MOC似乎正在向要移动的类名添加一个名称空间,尽管在文件/类的任何地方都没有提及. 但是,命名空间存在于我使用的库中,但隐藏在头文件中很远,并且我不在UI文件中使用它.这是MOC生成的: const QMetaObject SmpTl::CaptureController::staticMetaObject = { { &QObject::s
..
我必须从Qt命令提示符处运行以下命令:qmake -project然后make,这给了我带有Moc文件的调试文件夹. 奇怪的是,这是我的PC生成moc_.cpp文件的唯一方法. 那么我该如何自动执行这些命令的任务,而不必再次使用这些命令? 解决方案 您不应多次运行qmake -project. -project选项旨在为您提供模板项目文件供您编辑.每次要构建时,相当于在IDE中执行
..
我有一个名为FindAndReplaceBar的类,其实现是这样的: #include "FindAndReplaceBar.h" #include #include #include #include #include FindAndReplaceBar::F
..
我有一个看起来像这样的文件: #ifndef ENGINE_PLATFORM_AREAEDITOR_H #define ENGINE_PLATFORM_AREAEDITOR_H #include #include "../Widgets/QtSfmlWidget.h" namespace Engine { namespace World { class Area; }
..
我有一个简单的CMake项目: proj (project folder) ├── a.h ├── a.cpp └── CMakeLists.txt CMakeLists.txt: cmake_minimum_required(VERSION 3.2) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_AUTOMOC ON) project(p
..
最近我需要向类添加信号,因此我将类更改为从QObject继承,并将Q_OBJECT宏添加到类定义中.这样做之后,我在下面的类行中收到“'vtable for CLICommand'的信号未定义参考错误" 错误: // File clicommand.h #include #include #include #inclu
..
在从Qml内部调用重载的C ++方法并试图了解其背后的原因时,就遇到了Qt框架的怪异行为.假设我有一个QList类,它具有以下方法: ... Q_SLOT void append(const QVariant &item); Q_SLOT void append(const QVariantList &items); Q_SLOT void insert(int inde
..