我正在尝试使用QGLWidget内容的FPS来更新状态栏。我已经将它们连接起来,如下所示(在MainWin类中):
glWidget = new GLWidget;
ui.verticalLayout->addWidget(glWidget);
connect(glWidget, SIGNAL( updateFPSSignal(float) ),
this, SLOT( updateFPSSlot(float) ));
}插槽如下所示:
void MainWin::updateFPSSlot(float fps){
this->statusBar()->showMessage(QString::number(fps), 0);
}在MainWin类定义中,我有:
public slots:
void updateFPSSlot(float fps);信号如下:(据我所知,这不应该出现在这里,但是如果没有它,程序将拒绝编译)。
void GLWidget::updateFPSSignal(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')我读过的教程似乎都没有任何帮助,我相信对于更有经验的人来说,修复是简单的。
谢谢。
发布于 2010-07-21 20:11:13
你有没有
class GLWidget : public QGLWidget {
Q_OBJECT
/* ... rest of declaration ... */
};在你的类声明中?你有没有把你的glwidget.h头文件放到.pro文件的头文件里?信号的实现是由moc完成的,而不是你。
https://stackoverflow.com/questions/3298980
复制相似问题