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

 

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值