首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt4插槽和信号: Qt4很难找到信号

Qt4插槽和信号: Qt4很难找到信号
EN

Stack Overflow用户
提问于 2010-07-21 20:07:26
回答 1查看 396关注 0票数 0

我正在尝试使用QGLWidget内容的FPS来更新状态栏。我已经将它们连接起来,如下所示(在MainWin类中):

代码语言:javascript
复制
glWidget = new GLWidget;
ui.verticalLayout->addWidget(glWidget);

connect(glWidget,       SIGNAL( updateFPSSignal(float)  ),
        this,           SLOT(   updateFPSSlot(float)    ));
}

插槽如下所示:

代码语言:javascript
复制
void MainWin::updateFPSSlot(float fps){
this->statusBar()->showMessage(QString::number(fps), 0);
}

在MainWin类定义中,我有:

代码语言:javascript
复制
public slots:
    void updateFPSSlot(float fps);

信号如下:(据我所知,这不应该出现在这里,但是如果没有它,程序将拒绝编译)。

代码语言:javascript
复制
void GLWidget::updateFPSSignal(float fps){}

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

代码语言:javascript
复制
signals:
    void updateFPSSignal(float fps);

在计算fps之后,我调用:

代码语言:javascript
复制
emit updateFPSSignal(fps);

但是,当应用程序启动时,会打印出以下内容:

代码语言:javascript
复制
Object::connect: No such signal QGLWidget::updateFPSSignal(float) in /Users/usm/Desktop/OGLTest/MainWin.cpp:12
Object::connect:  (receiver name: 'MainWinClass')

我读过的教程似乎都没有任何帮助,我相信对于更有经验的人来说,修复是简单的。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-21 20:11:13

你有没有

代码语言:javascript
复制
class GLWidget : public QGLWidget {

   Q_OBJECT

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

};

在你的类声明中?你有没有把你的glwidget.h头文件放到.pro文件的头文件里?信号的实现是由moc完成的,而不是你。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3298980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档