我理解如何使用它,但它的语法困扰我。什么是“私人插槽:”在做什么?
我以前从未在private关键字和:之前的类定义中看到过。是否有一些奇特的C ++魔法在这里发生?
这里有例子:
#include <QObject>
class Counter : public QObject
{
Q_OBJECT
public:
Counter() { m_value = 0; }
int value() const { return m_value; }
public slots:
void setValue(int value);
...
答案 0 :(得分:50)
Slots是C ++特定于Qt的扩展。它只在通过Qt的预处理器,元对象编译器(moc)发送代码后编译。有关文档,请参阅http://doc.qt.io/qt-5/moc.html。
编辑:正如弗兰克指出的那样,moc仅用于链接。额外的关键字是#defined与标准预处理器。
答案 1 :(得分:16)
Qt广告位会忽略public
,private
等关键字。所有插槽实际上都是公共的,可以连接