Qt“私人老虎机:”这是什么?

时间:2012-02-05 07:19:47

标签: c++ qt signals-slots

我理解如何使用它,但它的语法困扰我。什么是“私人插槽:”在做什么?

我以前从未在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);

 ...

2 个答案:

答案 0 :(得分:50)

Slots是C ++特定于Qt的扩展。它只在通过Qt的预处理器,元对象编译器(moc)发送代码后编译。有关文档,请参阅http://doc.qt.io/qt-5/moc.html

编辑:正如弗兰克指出的那样,moc仅用于链接。额外的关键字是#defined与标准预处理器。

答案 1 :(得分:16)

Qt广告位会忽略publicprivate等关键字。所有插槽实际上都是公共的,可以连接