Qt Creator定时器和随机产生数字

来源:互联网 发布:java面试项目介绍 编辑:程序博客网 时间:2024/05/21 19:23

 

本文章原创于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

 

 

 

原创粉丝点击