C++ class Qt 中的声明语法
C++ class declaration syntax in Qt
第一次使用Qt-6,对C++比较业余。我看到了这种类型的 Class 声明,但无法理解它的含义。
class XYZ : public QWidget
{
Q_OBJECT
public:
XYZ
...
};
这叫什么?
有人可以解释这是什么或指出相关的 material / 问题。
这是一个 class 声明,其中您的 class XYZ
继承自名为 QWidget
的 QT 内置 class,它是基础QT 中所有用户界面对象的 class(参见:https://doc.qt.io/qt-6/qwidget.html)。
简而言之,宏 Q_OBJECT
允许您使用 signals
和 slots
的系统(用于 QT 中对象之间的通信)等等(参见:https://doc.qt.io/qt-6/qobject.html#Q_OBJECT)
文档是这样描述的:
The Q_OBJECT macro must appear in the private section of a class definition that declares its own signals and slots or that uses other services provided by Qt's meta-object system.
第一次使用Qt-6,对C++比较业余。我看到了这种类型的 Class 声明,但无法理解它的含义。
class XYZ : public QWidget
{
Q_OBJECT
public:
XYZ
...
};
这叫什么? 有人可以解释这是什么或指出相关的 material / 问题。
这是一个 class 声明,其中您的 class XYZ
继承自名为 QWidget
的 QT 内置 class,它是基础QT 中所有用户界面对象的 class(参见:https://doc.qt.io/qt-6/qwidget.html)。
简而言之,宏 Q_OBJECT
允许您使用 signals
和 slots
的系统(用于 QT 中对象之间的通信)等等(参见:https://doc.qt.io/qt-6/qobject.html#Q_OBJECT)
文档是这样描述的:
The Q_OBJECT macro must appear in the private section of a class definition that declares its own signals and slots or that uses other services provided by Qt's meta-object system.