最近在尝试做一个定时响应的小软件,权当练习,以下是别人的例子和部分代码。大体功能是,先显示当前系统时间,然后有设定时间的控件。运行时,该软件的窗体按一定的速度上升,显示系统时间,设定响应时间,设定完毕确定后该窗体按一定速度下降隐藏。到达设定的响应时间时,该窗体再次按一定的速度上升。下面是它的信号与槽链接:
void Alarm::con()
{
connect(timer,SIGNAL(timeout()),this,SLOT(clockChange()));
timer->start(1000);
connect(uptimer,SIGNAL(timeout()),this,SLOT(dialogUp()));
uptimer->start(20);
connect(dtimer,SIGNAL(timeout()),this,SLOT(down()));
dtimer->start(20);
connect(button,SIGNAL(clicked()),dtimer,SIGNAL(timeout()));
connect(button,SIGNAL(clicked()),this,SLOT(mini()));
connect(itimer,SIGNAL(timeout()),this,SLOT(comToCur()));
itimer->start(20);
connect(restoreAct,SIGNAL(triggered(bool)),uptimer,SIGNAL(timeout()));
connect(this,SIGNAL(isCurrentTime()),uptimer,SIGNAL(timeout()));
connect(itimer,SIGNAL(timeout()),this,SLOT(comToCur()));
itimer->start(10);
connect(quitAct,SIGNAL(triggered(bool)),this,SLOT(close()));
};
//clockChange()是现实变化的时间,用于显示系统时间的。
//dialogUp()是窗体上升
//down()窗体下降
//min()是窗体最小化
//comToCur()是一个判断,比较系统时间和设定的时间(个人是这样理解的)
// timer=new QTimer; //控制lcd的时间刷新,系统时间是以QLCDNumber的形式显示的
uptimer=new QTimer; //控制对话框上升
dtimer=new QTimer; //控制对话框下降
itimer=new QTimer;
comToCur()的内容是这样的:
void Alarm::comToCur()
{
if( QVariant(QTime::currentTime()).toString() == QVariant(timeEdit->time()).toString() )
{
QApplication::beep();
emit isCurrentTime();
}
};
好,问题是这里的itimer是指什么时间?它跟SLOT(dialogUp())是不是应该有关系呢?
我的理解是:到设定时间时,应该触发的事件是窗体上升,也就是说应该是SLOT(dialogUp())。但是itimer具体是控制什么的?如果是用于判断系统时间和设定的时间是否相等,那么它对应的槽是comToCur(),为什么不是dialogUp()呢?
恕小弟愚钝,看了帮助文档,都是英文,看了以后还是有点似懂非懂...请朋友们说的详细点,多谢啦~