Qt Q_对象宏和元对象代码

Qt Q_对象宏和元对象代码,qt,qobject,Qt,Qobject,这个链接:说 MOC工具读取C++头文件。 如果它找到一个或多个类 包含Q_对象的声明 宏,它产生C++源文件 包含的元对象代码 那些课 什么是元目标代码 编辑1 如何知道应该在哪些类中编写Q_对象?一个例子是信号和插槽,还有其他需要使用的情况吗?您可以阅读这篇文章,深入了解Qt及其moc编译器(meta-objet编译器)。总之,Qt的moc编译器创建了一个元对象,用于向类(如信号/插槽机制等)添加额外信息。您可以阅读本文以深入了解Qt及其moc编译器(元对象编译器)。总之,元对象是由Qt的

这个链接:说

MOC工具读取C++头文件。 如果它找到一个或多个类 包含Q_对象的声明 宏,它产生C++源文件 包含的元对象代码 那些课

什么是目标代码

编辑1


如何知道应该在哪些类中编写Q_对象?一个例子是信号和插槽,还有其他需要使用的情况吗?

您可以阅读这篇文章,深入了解Qt及其moc编译器(meta-objet编译器)。总之,Qt的moc编译器创建了一个元对象,用于向类(如信号/插槽机制等)添加额外信息。

您可以阅读本文以深入了解Qt及其moc编译器(元对象编译器)。总之,元对象是由Qt的MOC编译器创建的,以向类信号/时隙机制等添加额外信息。

< P> QT环境中的元对象代码是C++源文件,它是C++源文件的扩展版本,在其中放置了QyObject(和/或其他相关宏)。元对象代码将有你的实现加上一些额外的(元)代码,以便信号和槽机制工作。

< P> QT环境中的元对象代码是C++源文件,它是C++源文件的扩展版本,其中放置了QyObject(和/或其他相关宏)。元对象代码将包含您的实现以及一些其他额外(元)代码,以便信号和插槽机制工作。

元对象通过创建新对象或操作现有对象来增强编程语言。它们提供了一种语言本身并不具备的功能。元对象通过编译时或运行时进行解释。在Qt和C++中,编译时由元对象编译器(MOC)完成。p>
例如,信号/插槽概念的使用。

元对象通过创建新对象或操作现有对象来增强编程语言。它们提供了一种语言本身并不具备的功能。元对象通过编译时或运行时进行解释。在Qt和C++中,编译时由元对象编译器(MOC)完成。p>
例如,信号/插槽概念的使用。

元对象包含有关对象的元信息,如其名称及其信号和插槽的文本描述。这使得通过“名称”调用信号成为可能。请参阅与此相关的文档。

元对象包含有关对象的元信息,如其名称及其信号和插槽的文本描述。这使得通过“名称”调用信号成为可能。请参阅与此相关的文档。

谢谢您提供的链接,我会阅读的。但我只想用两三行文字来解释“元对象”的含义。谢谢你的链接,我会读的。但我只想用两三行文字来解释“元对象”的含义。这是否意味着,这不关我的事,我不应该费心看Q_对象是如何工作的?@anisha,如果你好奇,当然可以深入挖掘。但是您可以学习和使用Qt,而不必担心Q_对象是如何工作的。但是,您需要了解何时以及为什么使用Q_对象。原则上,是的。但是如果你想使用“invokeMethod”,了解QObject和QMetaObject的基本知识是很有帮助的。@Exa,@hmuelner感谢你们三位对我的问题感兴趣。我认为对我来说,了解我在未来面试中使用的术语是很重要的。有人告诉我,在你的代码中,你必须“知道”每一个字母,这是非常重要的。这就是我担心的原因。这是否意味着,这不关我的事,我不应该费心看Q_OBJECT是如何工作的?@anisha,如果你好奇,当然你可以深入挖掘。但是您可以学习和使用Qt,而不必担心Q_对象是如何工作的。但是,您需要了解何时以及为什么使用Q_对象。原则上,是的。但是如果你想使用“invokeMethod”,了解QObject和QMetaObject的基本知识是很有帮助的。@Exa,@hmuelner感谢你们三位对我的问题感兴趣。我认为对我来说,了解我在未来面试中使用的术语是很重要的。有人告诉我,在你的代码中,你必须“知道”每一个字母,这是非常重要的。这就是我担心的原因。谢谢你的回答。请看我在Donotalo的帖子中的评论。知道事情是如何运作的总是好的。不关心代码下面发生了什么的程序员是(imho)最糟糕的程序员。但是,是的,主运行中心允许您使用功能,而不必自己实现它们,因此您可以集中精力正确使用它们,而不是首先让它们工作。谢谢您的回答。请看我在Donotalo的帖子中的评论。知道事情是如何运作的总是好的。不关心代码下面发生了什么的程序员是(imho)最糟糕的程序员。但是,是的,MOC允许您使用功能,而不必自己实现它们,因此您可以集中精力正确使用它们,而不是首先让它们工作。