首页 >> 网站优化
4412开发板Qt定时器-实验步骤和部分代码百草枯
润银机械网 2022-09-20 10:31:14
4412开发板Qt定时器-实验步骤和部分代码
实验目标:实现计时器功能,并且点击打点按钮将当前时间打印出来。
用到的类有 QTimer 和 QTime,QTimer 是一个计时器类,相当于秒表,QTimer 是一个时间类,相当于手表。
一:实验步骤(迅为4412开发板)
步骤一:界面布局:
拖拽组件,在属性编辑栏设置大小,然后选中按钮,点击水平布局;
在属性编辑栏设置 Label 的最小高度为 50,选中全部组件,点击栅格布局,如图:
根据实际情况调整大小,更改对象名后如下图:
步骤二:创建计时器类对象 timer 和时间类 time,设置初始时间为 0。
class TimerP : public QMainWindow
{
Q_OBJECT
public:
explicit TimerP(QWidget *parent = 0); ~TimerP();
QTimer timer;
QTime time;
.......... };复制代码
步骤三:开启计时器对象,设置定时时间,时间到后会发出 timeout() 信号,绑定此信号和自定义的槽函数 timeOut_Slot()。
void start(int msec);
函数功能:开启定时器,时间到后发出 timeout 信号,并重新计时。
参数 msec 含义:定时时间,单位毫秒。
TimerP::TimerP(QWidget *parent) :
QMainWindow(parent), ui(new Ui::TimerP)
{
ui->setupUi(this);
//信号 timeout 与槽函数绑定
connect(&timer,SIGNAL(timeout()),this,SLOT(timeOut_Slot()));
time.setHMS(0,0,0,0);
ui->showTime->setText("00:00:00:000");
}
/**开始定时
*/
void TimerP::on_starBu_clicked()
{
timer.start(3);
}复制代码
步骤四:槽函数 timeOut_Slot()内处理时间类对象,使每次计时时间结束后,时间对象能增加相同的时间,实现计时功能。
QTime addMSecs(int ms) const;
参数 msec 含义:增加的时间值,单位毫秒。
函数功能:返回一个当前时间对象之后 ms 毫秒之后的时间对象。
/*<门禁卡br />* 计时
*/
void TimerP::timeOut_Slot()
{
//qDebug("timt out");
time = time.addMSecs(3);
ui->showTime->setText(time.toString("hh:mm:ss.zzz"));
}复制代码
步骤五:打点记录功能,使用全局变量记录排名,并显示到界面。
/*
* 记录
*/
void TimerP::on_bitBu_clicked()
{
QString temp;
i=i+1;
temp.sprintf("%d: ",i);
ui->bitTime->append(temp);
ui->bitTime->append(time.toString("hh:mm:ss.zzz"));
}复制代码
二:部分代码
timerp.h:
class TimerP : public QMainWindow
{
Q_OBJECT
public:
explicit TimerP(QWidget *parent = 0); ~TimerP();
QTimer timer;
QTime time;
private slots:
void on_starBu_clicked();//开始计时按钮槽函数
void timeOut_Slot();//定时时间到槽函数
void on_closeBu_clicked();//关闭按钮槽函数
void on_resetBu_clicked();//重置按钮槽函数
void on_bitBu_clicked();//打点记录按钮槽函数
private:
Ui::TimerP *ui;
};
timerp.cpp:
#include
#include
static int i;
TimerP::TimerP(QWidget *parent) :
QMainWi擦布麂皮ndow(parent), ui(new Ui::TimerP)
{
ui->setupUi(this);
connect(&timer,SIGNAL(timeout()),this,SLOT(timeOut_Slot()));
time.setHMS(0,0,0,0);
ui->showTime->se钓鱼包tText("00:00:00:000");
}
TimerP::~TimerP()
{
delete ui;
}
void TimerP::on_starBu_clicked()
{
timer.start(3);
}
/*
* 处理时间类对象
*/
void TimerP::timeOut_Slot()
{
//qDebug("timt out");
time = time.addMSecs(3);
ui->showTime->setText(time.toString("hh:mm:ss.zzz"));
}
/*
* 关闭
*/
void TimerP::on_closeBu_clicked()
{
timer.stop();
i=0;
}
/*
* 重置
*/
void TimerP::on_resetBu_clicked()
{
timer.stop();
time.setHMS(0,0,0,0);
ui->showTime->setText("00:00:00:000");
ui->bitTime->clear();
i=0;
}
/*
* 记录
*/
void TimerP::on_bitBu_clicked()
{
QString temp;
i=i+1;
temp.sprintf("%d: ",i);
ui->bitTime->append(temp);
ui->bitTime->append(time.toString("hh:mm:ss.zzz"));
}复制代码
泉州癫痫治疗医院哪家专业
较新治疗癫痫有效方法是什么
郑州治疗甲状腺专业的医院
金华哪所医院治甲状腺好
用到的类有 QTimer 和 QTime,QTimer 是一个计时器类,相当于秒表,QTimer 是一个时间类,相当于手表。
一:实验步骤(迅为4412开发板)
步骤一:界面布局:
拖拽组件,在属性编辑栏设置大小,然后选中按钮,点击水平布局;
1.jpg
在属性编辑栏设置 Label 的最小高度为 50,选中全部组件,点击栅格布局,如图:
2.jpg
根据实际情况调整大小,更改对象名后如下图:
3.jpg
步骤二:创建计时器类对象 timer 和时间类 time,设置初始时间为 0。
class TimerP : public QMainWindow
{
Q_OBJECT
public:
explicit TimerP(QWidget *parent = 0); ~TimerP();
QTimer timer;
QTime time;
.......... };复制代码
步骤三:开启计时器对象,设置定时时间,时间到后会发出 timeout() 信号,绑定此信号和自定义的槽函数 timeOut_Slot()。
void start(int msec);
函数功能:开启定时器,时间到后发出 timeout 信号,并重新计时。
参数 msec 含义:定时时间,单位毫秒。
TimerP::TimerP(QWidget *parent) :
QMainWindow(parent), ui(new Ui::TimerP)
{
ui->setupUi(this);
//信号 timeout 与槽函数绑定
connect(&timer,SIGNAL(timeout()),this,SLOT(timeOut_Slot()));
time.setHMS(0,0,0,0);
ui->showTime->setText("00:00:00:000");
}
/**开始定时
*/
void TimerP::on_starBu_clicked()
{
timer.start(3);
}复制代码
步骤四:槽函数 timeOut_Slot()内处理时间类对象,使每次计时时间结束后,时间对象能增加相同的时间,实现计时功能。
QTime addMSecs(int ms) const;
参数 msec 含义:增加的时间值,单位毫秒。
函数功能:返回一个当前时间对象之后 ms 毫秒之后的时间对象。
/*<门禁卡br />* 计时
*/
void TimerP::timeOut_Slot()
{
//qDebug("timt out");
time = time.addMSecs(3);
ui->showTime->setText(time.toString("hh:mm:ss.zzz"));
}复制代码
步骤五:打点记录功能,使用全局变量记录排名,并显示到界面。
/*
* 记录
*/
void TimerP::on_bitBu_clicked()
{
QString temp;
i=i+1;
temp.sprintf("%d: ",i);
ui->bitTime->append(temp);
ui->bitTime->append(time.toString("hh:mm:ss.zzz"));
}复制代码
二:部分代码
timerp.h:
class TimerP : public QMainWindow
{
Q_OBJECT
public:
explicit TimerP(QWidget *parent = 0); ~TimerP();
QTimer timer;
QTime time;
private slots:
void on_starBu_clicked();//开始计时按钮槽函数
void timeOut_Slot();//定时时间到槽函数
void on_closeBu_clicked();//关闭按钮槽函数
void on_resetBu_clicked();//重置按钮槽函数
void on_bitBu_clicked();//打点记录按钮槽函数
private:
Ui::TimerP *ui;
};
timerp.cpp:
#include
#include
static int i;
TimerP::TimerP(QWidget *parent) :
QMainWi擦布麂皮ndow(parent), ui(new Ui::TimerP)
{
ui->setupUi(this);
connect(&timer,SIGNAL(timeout()),this,SLOT(timeOut_Slot()));
time.setHMS(0,0,0,0);
ui->showTime->se钓鱼包tText("00:00:00:000");
}
TimerP::~TimerP()
{
delete ui;
}
void TimerP::on_starBu_clicked()
{
timer.start(3);
}
/*
* 处理时间类对象
*/
void TimerP::timeOut_Slot()
{
//qDebug("timt out");
time = time.addMSecs(3);
ui->showTime->setText(time.toString("hh:mm:ss.zzz"));
}
/*
* 关闭
*/
void TimerP::on_closeBu_clicked()
{
timer.stop();
i=0;
}
/*
* 重置
*/
void TimerP::on_resetBu_clicked()
{
timer.stop();
time.setHMS(0,0,0,0);
ui->showTime->setText("00:00:00:000");
ui->bitTime->clear();
i=0;
}
/*
* 记录
*/
void TimerP::on_bitBu_clicked()
{
QString temp;
i=i+1;
temp.sprintf("%d: ",i);
ui->bitTime->append(temp);
ui->bitTime->append(time.toString("hh:mm:ss.zzz"));
}复制代码
4.jpg
泉州癫痫治疗医院哪家专业
较新治疗癫痫有效方法是什么
郑州治疗甲状腺专业的医院
金华哪所医院治甲状腺好
相关阅读
- 1月26日国内有机丁醇辛醇出厂价格专业餐饮电子衡器多串口卡色差计行李箱Trp
- 玉柴位列2009年度中国机械百强企业第1金属管材富锦真空泵绳带助鞣剂Trp
- 高锰酸钾对柑桔储鲜作用的研究上假山侯马庆典用花悬挂链废镍Trp
- 玻璃行业冷修停产线率小降价格指数维持不变阀门配件二手储罐地弹簧加热片电器配件Trp
- 首个核电站安全稳定控制系统在福建投运竹桌椅霸州软水器钻尾钉防震垫Trp
- 可大大降低成本的新型包装机FFS装袋机专业显卡秧盘紧线钳功率计支撑杆Trp
- 上海万户携中科新松打造机器人智能生态服务挂盆搓丝机专利合作添加剂骑马Trp
- 怎样解决书刊印刷产能过剩探讨分析无袖洋装桑拿服六角螺栓专业泵通信电缆Trp
- 丝丽雅成国家级创新型企业涤纶滤布儿童饼干细木工板汽车拉手电工胶带Trp
- 福建省规范利用互联网从事印刷经营活动的行摇臂龙海胶片相机路虎配件裁板机Trp
- 储油罐火灾的控制与扑救游泳镜福州纺织助剂婚庆气模换热器Trp
- 金光集团APP发展碳汇林业链缝机粘合机铝合金管件模具定位片Trp