当前位置: 代码迷 >> QT开发 >> qtimer的触发函数如何定义
  详细解决方案

qtimer的触发函数如何定义

热度:110   发布时间:2016-04-25 03:09:35.0
qtimer的触发函数怎么定义?
代码如下:#include "mainwindow.h"
#include#includeint x=100;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    setupUi(this);
    QTimer *timer_sys=new QTimer(this);
    connect(timer_sys,SIGNAL(timeout()),this,SLOT(T_update()));
    timer_sys->start(1000);
}

void MainWindow::T_update()
{
    x--;
    printf("%d",x);
}运行的时候总是提示: “T_update”: 不是“MainWindow”的成员, 请问应该如何修改?另外,该例子中定义了一个外部变量x,如果在MainWindow::T_update()函数里里面使用,没有问题;但是如果在MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent)使用,会提示:“QWidget::x”:  函数调用缺少参数列表;请使用“&QWidget::x”创建指向成员的指针, 请问是怎么回事?
------解决思路----------------------
1.首先你这个槽函数定义了么?
2.如果定义了,你在头文件这个类声明的最开始加了Q_OBJECT没有?
如图:

3.外部变量不是你那样用的,你可以定义在该源文件对应的头文件中,或者新建一个头文件定义,然后引入这个头文件,就可以进行使用了。