• 5429阅读
  • 8回复

[提问]timerevent [复制链接]

上一主题 下一主题
离线luoxianhui
 
只看楼主 倒序阅读 楼主  发表于: 2012-06-15
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCore>


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{

    startTimer(1000);
    startTimer(5000);
    startTimer(10000);
       ui->setupUi(this);

}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::timerEvent(QTimerEvent *E)
{switch(E->timerId())
    {case 1: ui->label->setText(tr("产生一个随机数:%1").arg(qrand()%10));break;
    case 2: ui->label_2->setText(tr("五秒钟后关闭"));break;
    case 3: qApp->quit();
       break;
    }

}
试验定时器的时候,发现只有case1有效果,其他没有效果,求高手指点。
离线benbenmajia

只看该作者 1楼 发表于: 2012-06-15
你先把id输出出来看看。
安然.....
离线luoxianhui
只看该作者 2楼 发表于: 2012-06-15
回 1楼(benbenmajia) 的帖子
谢谢,好像一直都是1,可以怎样修改一下下?
离线benbenmajia

只看该作者 3楼 发表于: 2012-06-15
回 2楼(luoxianhui) 的帖子
不应该的啊,晚上回去看看
安然.....
离线jdwx

只看该作者 4楼 发表于: 2012-06-15
回 2楼(luoxianhui) 的帖子
int timerID1 = startTimer(1000);
int timerID2 = startTimer(5000);
int timerID3 = startTimer(10000);

再试试看吧,逐个输出3个timerID,没有仔细研究过,估计第二个timer的ID不一定是2.
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 5楼 发表于: 2012-06-15
你为什么会理所当然的认为timerid就是1、2、3呢?
要是我我还会认为是0、1、2呢……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线benbenmajia

只看该作者 6楼 发表于: 2012-06-18
但是他debug出来的ID都是1,这和assistant里面说的相差太远了吧。
安然.....
离线luoxianhui
只看该作者 7楼 发表于: 2012-06-19
回 4楼(jdwx) 的帖子
谢谢了,我把它输出来后发现下面两个是几个很大的数字,有的平台是默认1、2、3,但是我的产生的是随机数。
离线luoxianhui
只看该作者 8楼 发表于: 2012-06-19
回 6楼(benbenmajia) 的帖子
谢谢回复,我按四楼的把它输出来后发现下面两个是几个很大的数字,有的平台是默认1、2、3,但是我的产生的是随机数。所以后要用的时候可以先把id输出来看看,不过我感觉要是程序编出来用到不同的平台可能就有有bug了
快速回复
限100 字节
 
上一个 下一个