首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

[提问]qtimer施用stop函数不能终止qtimer调用的槽函数

2012-07-04 
[提问]qtimer使用stop函数不能终止qtimer调用的槽函数这是Qtimerstart和stop所在的地方,还有一个void time

[提问]qtimer使用stop函数不能终止qtimer调用的槽函数
这是Qtimer   start和stop所在的地方,还有一个void timerrenDone()函数,按下走动的人开始按钮,timeren函数执行,然后按下走动的人结束按钮,timerren函数仍然在执行,是我的timer函数用错了,还是timerrenDone()的问题
void Widget::on_pushButton_clicked()//走动的人开始按钮
{
    ui->label->show();
    ui->label_2->show();
    ui->label_3->show();
    ui->label_4->show();
    ui->label_5->show();
    ui->label_6->show();
    ui->pushButton->hide();
    ui->pushButton_3->show();
   QTimer *timerren=new QTimer;
   timerren->start(100);
   connect(timerren,SIGNAL(timeout()),this,SLOT(timerrenDone()));
    ui->pushButton->hide();



}

void Widget::on_pushButton_3_clicked()//走动的人结束按钮
{

timerren->stop();
    ui->label->hide();
    ui->label_2->hide();
    ui->label_3->hide();
    ui->label_4->hide();
    ui->label_5->hide();
    ui->label_6->hide();
    ui->pushButton_3->hide();
    ui->pushButton->show();

}

[解决办法]
LZ的变量“timerren”要设置成类成员变量的吧,要不然“void Widget::on_pushButton_3_clicked()//走动的人结束按钮”怎么调用?
[解决办法]
QTimer *timerren=new QTimer;

这个是临时变量?
[解决办法]
还没结贴
[解决办法]
lz的代码如果能编译通过的话,那么在on_pushButton_clicked中的timerren是一个局部变量,而在on_pushButton_3_clicked中的timerren是一个全局变量,这两个变量代表两个不同的定时器,你用第二个定时器来stop第一个定时器,那当然是失败的。
[解决办法]
你的timerren是局部变量,只能在本函数中使用,不能在另外的函数中使用。。。

在函数外声明一个QTimer *timerrren;
然后再你的on_pushButton_clicked()中timerren = new QTimer;即可

热点排行