首页 > TAG信息列表 > Moc

Qt源码解析3-信号和槽机制

Qt源码解析 索引 1、MOC moc介绍 Q_OBJECT,SLOT,SIGNAL,emit, Q_INVOKABLE等宏是Qt扩展的语法,它们其实定义在qobjectdefs.h中,编译时被moc展开。 总结:Moc可以理解位是一个C++预处理程序 ,作用就是把Q_OBJECT SIGNAL Q_INVOKABLE等宏展开,并保存类中特定函数(signals,slots标签下的

Note: No relevant classes found. No output generated

自己用VS 2017 + Qt 5.14.1 + qt-vsaddin-msvc2017-2.4.1-rev.12.vsix 编写的工程编译时,报如下警告: Note: No relevant classes found. No output generated 然后生成的moc开头的文件都是空的,即0 KB,  以下是网友说的解决方法: QT文件的编码和VS内原工程编码不一致。QT文件是Uni

Qt|pro文件详解

1.注释         从“#”开始,到此行结束 2.TEMPLATE         模板,告诉qmake为这个应用程序生成哪种makefile (1)、app——建立一个应用程序的makefile。默认值,如果没有指定模板,这个将被使用。 (2)、lib——建立一个库的makefile。 (3)、vcapp——建立一个库的VisualStudi

C# 获取电脑信息

有些时候我们需要获取电脑的一些硬件信息,然后去配置不同的逻辑,也或者有根据部分硬件信息做机器验证的,当然你也可以做成一个小工具以方便查看信息; 本篇写一下获取部分电脑硬件信息的操作; 实现功能: 获取电脑硬件信息 开发环境: 开发工具: Visual Studio 2013 .NET Framework版本

编译SandBoxie-plus自动生成文件脚本

首先添加moc.exe所在目录的PATH环境变量 moc.exe .\MiscHelpers\Common\CheckableMessageBox.h -o .\MiscHelpers\Common\moc_CheckableMessageBox.cpp moc.exe .\MiscHelpers\Common\ComboInputDialog.h -o .\MiscHelpers\Common\moc_ComboInputDialog.cpp moc.exe .\Mi

QT解决方案中新建动态链接库工程,且继承于QObject,解决无法生成moc_XXX.cpp文件的问题,解决工程之间的引用问题

QT解决方案中新建动态链接库工程,且继承于QObject,解决无法生成moc_XXX.cpp文件的问题,解决工程之间的引用问题 参考文章: (1)QT解决方案中新建动态链接库工程,且继承于QObject,解决无法生成moc_XXX.cpp文件的问题,解决工程之间的引用问题 (2)https://www.cnblogs.com/pupilLZT/p/10744735

qt moc 文件添加失败

开发环境由vs2010 qt4.7 升级到vs2017+5.9 。两个环境同时存在。 有时 从QObject派生的类不能自动将对应的moc文件添加到 genaral/debug/release文件过滤器下。 需要手动添加 。 但是系统提示 选择要添加的moc文件的名称无效。添加失败。 查看是Q_MOC_OUTPUT_REVERSION !=67 造成

C# 获取电脑硬件基本信息

封装类 /// <summary> /// Computer 的摘要说明 /// </summary> public class Computer { public string CpuID; public string MacAddress; public string DiskID; public string IpAddress; public string LoginUserName; public string Comput

2021-05-13Libnodave测试

只需要几个代码块,注意32或者64位的qmaker会有区别 只需要几个代码块,注意32或者64位的qmaker会有区别 选择构建又会重新生成那个文档build COM程序是window上进运行?Yes qmaker是什么? 根据之前项目指南创建的项目文件.pro,并且运行qmake生成debug或release目录,里面含有qmake后生

2021-04-22

RTX3090/Nvidia A10+Ubuntu20.04+Pytorch1.7+Cuda11.1在MOC复现上总结 之前写过一篇文章,也是复现MOC,只不过实在RTX TAITAN X上,当时的环境是python3.6+pytorch1.4。 今天尝试了利用RTX3090以及A10(Nvidia)的新卡去跑MOC,遇到了几个问题,经过调试,也成功解决。接下来分享一下: BUG1:

QT工具——moc、rcc、uic

开始之前需要先引入资源的概念 qml的UI文件、qwidgets的ui文件、各种图片等,在开发阶段引入qt的工程,这些可以称之为资源。 除了资源,qt还扩展的c++语法(实现了信号槽等) 资源和扩展c++语法最终都会被qt整理成标准c++代码文件,然后调用gcc、msvc等编译器编译成可执行文件。 使用下面这三

error C1083: 无法打开源文件: “GeneratedFiles\Debug\moc_xxxxxx.cpp”: No such file or directory

出现这个报错的原因是添加了QOBJECT宏之后没有生成moc文件,解决方法如下: 在报错的项目上右键,属性->配置属性->自定义生成工具->常规 命令行添加: "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWI

全面剖析Qt6新版构建系统CMake

Qt自带集成开发环境(IDE),名为Qt Creator。它可以在Linux、OS X和Windows上运行,并提供智能代码完成、语法高亮、集成帮助系统、调试器和剖析器集成,还集成了所有主要的版本控制系统(如git、Bazaar)。除了Qt Creator外,Windows上的开发人员还可以使用Qt的Visual Studio插件。也可以使用

qt元对象编辑器

moc(Meta-Object Compiler,元对象编辑器): qt不是标准的c++语言,而是对其进行了一定程度的扩展,从qt新增加的关键字signals、slots等就可以看出来,因此在qt将源代码交给标准c++编译器之前,需要事先将这些扩展的语法去掉,完成这一工作的就是moc,因此qt的编译速度会比较慢。 moc在qt将源

[QT] Visual Studio2015 + QT5.7 遇到的 moc 失败的问题

报错是类似这样的 Error 4 fatal error C1083: Cannot open source file: '..\src\GeneratedFiles\Win32\Debug\moc_Qt_About.cpp': No such file or directory c1xx Error 5 fatal error C1083: Cannot open source file: '..\src\GeneratedFiles\Win32\De

IIS服务器下.moc文件的获取

在受到朋友的委托之后,给他的个人博客整上了看板娘。但是在根据网上的教程做完之后,发现看板娘的模型没有成功显示出来。在抓包之后,发现是.moc文件没有成功获取,反而出现了404错误。经过认真的检查之后,发现路径并没有存在错误,对于相同路径下的.js文件.css文件等都可以正常地获

qt creator源码全方面分析(4-6)

目录Qt插件基础 Qt插件基础 我们知道Qt Creator源码是基于插件架构的,那么我们先来介绍下插件基础知识。 相关内容如下: How to Create Qt Plugins <QtPlugin> - Defining Plugins Echo Plugin Example QPluginLoader QLibrary moc(源码见qtbase/src/tools/moc目录) 原创造福大家

qt中moc的作用

 Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉。完成这一操作的就是 moc。 moc 全称是 Meta-Object Compiler,也就是“元对象编译器”。Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件。如果它发现在一个头文件中包含了宏 Q_OBJECT,则

centos查找和替换字符串

查找当前目录下的文件包含指定字符串的语句 find . | xargs grep -ril "字符串" 只列出包含字符串的文件列表 find . | xargs grep -ri "字符串" 列出包含字符串的文件意义具体的信息 xargs介绍 xargs是给名利传递参数的一个过滤器,也是组合多个命令的一个工具。可以将管道或

Qt之信号与槽总结

Qt 信号槽是 Qt 整个架构的基础之一,因此它同 Qt 提供的组件、线程、反射机制、脚本、元对象机制以及可视化 IDE 等等紧密地集成在一起。Qt 的信号是对象的成员函数,所以,只有拥有信号的对象才能发出信号。Qt 的组件和连接可以由非代码形式的资源文件给出,并且能够在运行时动态建

c – 信号和插槽是语法糖还是它们还有更多?

我正在学习Qt,而且我对signal-slotpattern有很多乐趣.我的问题是,信号和槽只是事件监听器和处理程序的语法糖或后台发生的事情是不同的性质?如果以后,有什么根本区别?解决方法: Are signals and slots syntactic sugar or there is more to them? The question that I have is that,

c – Q_OBJECT与否Q_OBJECT

我在main.cpp中用自己的类编写了一个小程序.这里的代码: #include <QApplication> #include <QPushButton> #include <QLabel> class MyWidget : public QWidget { //Q_OBJECT public: MyWidget(QWidget* parent = 0); QLabel* label; QString string; signal

Q_OBJECT提供了信号槽机制、国际化机、RTTI 的反射能力(cpp中使用Q_OBJECT导致无法处理moc,就需要#include “moc_xxx.h”)

 只有继承了QObject类的类,才具有信号槽的能力。所以,为了使用信号槽,必须继承QObject。凡是QObject类(不管是直接子类还是间接子类),都应该在第一行代码写上Q_OBJECT。不管是不是使用信号槽,都应该添加这个宏。这个宏的展开将为我们的类提供信号槽机制、国际化机制以及 Qt 提供的不基

[C++_QT] Error: Not a signal or slot declaration

问题:   在Qt工程中添加了一个新的窗口之后 一直报错 如下      单单从错误描述上看 是缺少信号或者槽 但是我确定没有缺少啊        然后第二个错误显示了一个mox_xxxx文件 然后我就去那个目录下去找那个文件 但是发现没有 所以接下来就是找到为什么没有moc_xxx文件  

QT解决undefined reference to vtable的万能办法

QT编译彻底解决undefined reference to vtable 在改以前的QT工程时,SLOT找不到的警告只有运行才会出现。即使加了Q_OBJECT 也是错误不断,怎么删除也会有undefined reference to vtable的报错。后面发现完全是因为Makefile的不更新,导致了生成不了moc_.cpp文件,无法完成编译 下面是