Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt4插槽和信号:Qt4无法找到信号_C++_Qt_Qt4_Signals Slots - Fatal编程技术网

C++ Qt4插槽和信号:Qt4无法找到信号

C++ Qt4插槽和信号:Qt4无法找到信号,c++,qt,qt4,signals-slots,C++,Qt,Qt4,Signals Slots,我正在尝试使用QGLWidget内容的FPS更新状态栏。我已将其连接如下(在MainWin课堂上): 时段如下: void MainWin::updateFPSSlot(float fps){ this->statusBar()->showMessage(QString::number(fps), 0); } 在MainWin类定义中,我有: public slots: void updateFPSSlot(float fps); 信号如下:(据我所知,这不应该在这里,但

我正在尝试使用QGLWidget内容的FPS更新状态栏。我已将其连接如下(在MainWin课堂上):

时段如下:

void MainWin::updateFPSSlot(float fps){
this->statusBar()->showMessage(QString::number(fps), 0);
}
在MainWin类定义中,我有:

public slots:
    void updateFPSSlot(float fps);
信号如下:(据我所知,这不应该在这里,但程序拒绝编译没有它)

我在GLWidget类定义中有以下内容:

signals:
    void updateFPSSignal(float fps);
计算fps后,我调用:

emit updateFPSSignal(fps);
但是,当应用程序启动时,会打印以下内容:

Object::connect: No such signal QGLWidget::updateFPSSignal(float) in /Users/usm/Desktop/OGLTest/MainWin.cpp:12
Object::connect:  (receiver name: 'MainWinClass')
我读过的所有教程似乎都没有任何帮助,我相信对于更有经验的人来说,修复方法很简单

谢谢。

你有吗

class GLWidget : public QGLWidget {

   Q_OBJECT

   /* ... rest of declaration ... */

};
在你的班级宣言里?您是否已将glwidget.h头放入.pro文件的HEADERS部分?信号的执行由主运行中心完成,而不是您。

您有

class GLWidget : public QGLWidget {

   Q_OBJECT

   /* ... rest of declaration ... */

};

在你的班级宣言里?您是否已将glwidget.h头放入.pro文件的HEADERS部分?信号的实现是由moc完成的,而不是您。

啊,是的,我在类声明中加入了Q_对象,并且我还需要在重新编译之前运行qmake。谢谢这也将消除在信号声明之后使用大括号的需要,因为moc现在应该为您生成一个实现。啊,是的,我在类声明中放入了Q_对象,并且我还需要在重新编译之前运行qmake。谢谢由于moc现在应该为您生成一个实现,因此在信号声明之后也不需要大括号。为了清楚起见,请写“Qt”而不是“Qt”。谢谢为清楚起见,请写“Qt”而不是“Qt”。谢谢
class GLWidget : public QGLWidget {

   Q_OBJECT

   /* ... rest of declaration ... */

};