本文章原创于www.yafeilinux.com 转载请注明出处。
有两种方法产生定时器,第一种是自己关联。而第二种就是使用事件,在这里就做下程序的笔记。
在main.cpp中添加代码实现中文:
(其他头文件都是自动生成)
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
Widget w;
w.show();
return a.exec();
}
在widget.h中添加代码(我用的是widget,在www.yafeilinux.com 中用的是window,应该都差不多。那个网站确实写的不错,很支持。)
public:
explicit Widget(QWidget *parent = 0);
~Widget();
void timerEvent(QTimerEvent *);
private:
Ui::Widget *ui;
int id1,id2,id3;
下面就进入widget.cpp中了:
id1 = startTimer(1000);
id2 = startTimer(5000); id3 = startTimer(10000);
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
上面是加在构造函数中。
void Widget::timerEvent(QTimerEvent *t) { if(t->timerId() == id1) ui->label->setText(tr("每秒产生一个随机数:%1").arg(qrand()%10)); else if(t->timerId() == id2) ui->label_2->setText(tr("5秒后将关闭")); else qApp->quit(); }
这样整个就做完了。随机数的实现:
上面程序中的qrand(),可以产生随机数,qrand()%10可以产生0-9之间的随机数。要想产生100以内的随机数就%100。以此类推。
但这样每次启动程序后,都按同一种顺序产生随机数。为了实现每次启动程序产生不同的初始值。我们可以使用qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));实现设置随机数的初值,而程序每次启动时该函数返回的值都不同,这样就实现了产生不同初始值的功能。
转载于http://www.yafeilinux.com/?p=51