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

Qtimer 有关问题,设置单次定时,但是slot槽程序被执行两遍

2013-08-24 
Qtimer 问题,设置单次定时,但是slot槽程序被执行两遍?void MainWindow::on_newPushButton_clicked(){if(ui

Qtimer 问题,设置单次定时,但是slot槽程序被执行两遍?

void MainWindow::on_newPushButton_clicked()
{
    if(ui->checkBox->isChecked())
    {
        this->hide();
        this->timer=new QTimer;
        QObject::connect(this->timer,SIGNAL(timeout()),this,SLOT(shotScreenSlot()));
        this->timer->start(ui->delaySpinBox->value()*1000);//设置延时时间
        this->timer->setSingleShot(true);
    }else
    {
        qApp->beep();
    }
}
void MainWindow::shotScreenSlot()
{
    this->timer->stop();//测试了这个几乎不起作用,如果在上面不设置单次触发,那么会周期触发的
    this->pixmap=QPixmap::grabWindow(QApplication::desktop()->winId());
    ui->screenLabel->setPixmap(this->pixmap.scaled(ui->screenLabel->size()));
    qDebug()<<"****";//测试slot函数进入几次
    this->show();   
}


以上就是程序最关键部分   timer设置成单次触发了,但是slot会执行两遍,不知道为什么?哪位大神遇到这种问题,求教。。。
[解决办法]
这个问题其实挺简单,按钮系统有个缺省的slot 函数,命名规则刚好和你的一样了。哦!你找到答案了!。

热点排行