qt自学笔记(十一)之定时器
来源:互联网 发布:帝国cms留言表单 编辑:程序博客网 时间:2024/06/11 08:04
前言:这一节学习qt中的定时器
定时器功能
让程序每过一定的时间就去执行某一个操作。
例子
让ui每过一秒就显示一次系统时间,实现一种动态的显示效果。
代码
mainwindoe.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); virtual void timerEvent(QTimerEvent *event);//这个是事件处理函数,写法是固定的private: Ui::MainWindow *ui; int timerid;//这个变量一定要有,因为一般的程序中一般不止一个定时器,需要这个来是识别为哪个定时器};#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include "QTime"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); timerid=startTimer(1000);//这个函数就是用来启动一个定时器,括号里面为定的时间ms,并将返回一个数字给timeid来识别为哪个定时器}MainWindow::~MainWindow(){ delete ui;}void MainWindow::timerEvent(QTimerEvent *event)//不管有多少定时器,处理函数只有一个{ if(event->timerId()==timerid)//通过这个if来分别处理多个定时器的任务 { QTime a; QTime now = a.currentTime();//用于获取系统的时间,需要包含QTime的头文件。返回的也是QTime类 QString text = now.toString("HH:mm:ss");将QTime类转换为string类,因为settext的参数为string,括号里为格式 ui->time->setText(text); }}
效果:
扩展
既然可以写多个定时器,试着再写一个定时器,也是实时显示数字的变化。
程序:
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); virtual void timerEvent(QTimerEvent *event);private: Ui::MainWindow *ui; int timerid; int timerid1; int n;};#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include "QTime"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); n=0; timerid=startTimer(1000); timerid1=startTimer(1000);}MainWindow::~MainWindow(){ delete ui;}void MainWindow::timerEvent(QTimerEvent *event){ if(event->timerId()==timerid) { QTime a; QTime now = a.currentTime(); QString text = now.toString("HH:mm:ss"); ui->time->setText(text); } if(event->timerId()==timerid1) { ui->count->setText(QString::number(n));//这个函数QString::number(n)很重要,作用是将int转换为string n++; }}
效果
阅读全文
0 0
- qt自学笔记(十一)之定时器
- Linux自学笔记(十一)Linux之用户和用户组
- QT自学笔记(—)
- QT自学笔记(二)
- QT自学笔记(三)
- QT自学笔记(四)
- QT自学笔记(5)
- QT自学笔记(6)
- QT自学笔记(七)
- QT自学笔记(八)
- QT自学笔记(九)
- qt自学笔记(十)
- QT学习笔记之十一 Timer
- QT学习笔记之十一 SymbolPicker
- QT之GUI学习笔记(十一)----QColorDialog
- Python自学笔记十一、WSGI
- 工作自学Qt笔记
- linux 自学笔记(十一)linux文件系统管理
- 15算法课程 204. Count Primes
- Qt之FTP上传/下载
- hihoCoder-1632-Secret Poems(大模拟)
- Keras: preprocessing_function && random_crop
- 协程、同步异步、并发、并行、rabbitmq、分布式任务队列
- qt自学笔记(十一)之定时器
- 欢迎使用CSDN-markdown编辑器
- mave依赖报错
- 二 mybatis直接使用映射文件
- 【牛腩新闻发布系统】错误集锦
- Excell vlookup的使用
- 让程序员最挠头的9大任务(转)
- c语言第二次练习题
- 视图 横屏展示