Qt做定时器,生成随机数

发布于 2022-09-02 20:58:56 字数 1852 浏览 18 评论 0

在mainwindow.h中添加槽函数声明。

private slots:

void timerUpDate();
3.在mainwindow.cpp中添加代码。

添加#include <QtCore>的头文件包含,这样就包含了QtCore下的所有文件。

构造函数里添加代码:

QTimer *timer = new QTimer(this);

//新建定时器
connect(timer,SIGNAL(timeout()),this,SLOT(timerUpDate()));
//关联定时器计满信号和相应的槽函数
timer->start(1000);
//定时器开始计时,其中1000表示1000ms即1秒
4.然后实现更新函数。

void MainWindow::timerUpDate()

{
QDateTime time = QDateTime::currentDateTime();
//获取系统现在的时间
QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");
//设置系统时间显示格式
ui->label->setText(str);
//在标签上显示时间
}
第二种。使用事件。(有点像单片机中的定时器啊)

在窗口上添加两个标签。

在main.cpp中添加代码,实现中文显示。

#include <QTextCodec>

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

3.在mainwindow.h中添加代码。

void timerEvent(QTimerEvent *);

4.在mainwindow.cpp中添加代码。

添加头文件#include <QtCore>

在构造函数里添加以下代码。

startTimer(1000); //其返回值为1,即其timerId为1

startTimer(5000);//其返回值为2,即其timerId为2

startTimer(10000); //其返回值为3,即其timerId为3

添加了三个定时器,它们的timerId分别为1,2,3。注意,第几个定时器的返回值就为几。所以要注意定时器顺序。
在下面添加函数实现。
void MainWindow::timerEvent(QTimerEvent *t) //定时器事件

{

switch(t->timerId()) //判断定时器的句柄
{
case 1 : ui->label->setText(tr("每秒产生一个随机数:%1").arg(qrand()%10));break;
case 2 : ui->label_2->setText(tr("5秒后软件将关闭"));break;
case 3 : qApp->quit();break; //退出系统
}
}
这里添加了三个定时器,并都在定时器事件中判断它们,然后执行相应的功能。这样就不用每个定时器都写一个关联函数和槽函数了。
随机数的实现:

qrand(),可以产生随机数

qsrand(time(0))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文