简单的Qt倒计时程序--番茄钟
为了方便在电脑上使用番茄钟,自己写了一个简单的Qt程序,用到了QLCDNumber显示剩余时间,Timer定时器发射定时信号,QPushbutton开始按钮。
点击开始工作会开始倒计时,为了方便观看加了一个霸道的窗口置顶,切换应用后也永远在顶端显现。
25分钟结束后倒计时界面变红,再次点击开始工作重新进入倒计时。
总之,程序相当简单,界面也就只有一个lcd显示屏+一个按钮。主要是为了窗口置顶功能,省了平常还要使用deskpin的麻烦233333.
把代码放上来:只更改了widget.h和widget.cpp文件,main.cpp及.pro文件并未修改。
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDialog>
#include <QLCDNumber>
#include <QVBoxLayout>
#include <QPushButton>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
signals:
public slots:void onTimeout();void clickOnButton();
private:QLCDNumber *lcd;QTimer *timer;int minute=25,second=0;QVBoxLayout *layout;QPushButton *startbutton;
};#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include <QtGui>
#include <QLCDNumber>
#include <QTime>
#include <QTimer>
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{lcd=new QLCDNumber();lcd->setDigitCount(5);lcd->setMode(QLCDNumber::Dec);lcd->setSegmentStyle(QLCDNumber::Flat);timer=new QTimer();timer->setInterval(1000);timer->start();startbutton=new QPushButton("开始工作");connect(startbutton,SIGNAL(clicked(bool)),this,SLOT(clickOnButton()));QVBoxLayout *layout = new QVBoxLayout();layout->addWidget(lcd);layout->addWidget(startbutton);this->setLayout(layout);this->resize(400,200);this->setWindowFlag(Qt::WindowStaysOnTopHint);//this->setWindowFlags(Qt::Widget | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowStaysOnTopHint);
}Widget::~Widget(){}void Widget::onTimeout(){QString s_minute=QString::number(minute);QString s_second=QString::number(second);if (s_minute.length()==1) s_minute="0"+s_minute;if(s_second.length()==1) s_second="0"+s_second;QString disp=s_minute+":"+s_second;lcd->display(disp);//QTime time = QTime::currentTime();//lcd->display(time.toString("mm:ss"));if((minute!=0)|(second!=0)){if(second==0){second=59;minute--;}elsesecond--;}elselcd->setStyleSheet("background-color:red");//lcd->display(QTime::currentTime().toString(QString::number(minute)+":"+QString::number(second)));
}void Widget::clickOnButton(){this->minute=25;this->second=0;disconnect(timer,SIGNAL(timeout()),this,SLOT(onTimeout()));connect(timer,SIGNAL(timeout()),this,SLOT(onTimeout()));this->lcd->setStyleSheet("background-color:white");
}
最后一点:
不知道为什么,如果使用timer->stop代替disconnect的话,会莫名进入到加速状态。第一次点击开始按钮,正常倒计时;第二次点击开始,每秒显示的数字其实是减2…;第N次每秒数字减N。没搞明白为什么timer明明stop了却好像还在计时?不过最后采用断开槽连接之后确实没问题了。
简单的Qt倒计时程序--番茄钟相关推荐
- 简黑时钟 AClock 2.8 中文版 ,一款全屏翻页时钟/倒计时/番茄钟
AClock 是一款多功能 Mac翻页时钟应用,支持倒计时功能,可以将翻页时钟设置为mac的屏幕保护. 特色功能: 翻页时钟.经典数字时钟随心切换 内置便捷的秒表.倒计时.番茄钟 自定义日期 - 倒数 ...
- 网页番茄钟(Pomodoro timer)
用js/jq实现一个番茄钟的方法 最终效果如图: 这个番茄钟主要的功能需求有三个: 1. 修改休息时间 2. 修改工作时间 3. 显示timer 修改时间的部分比较简单,需要注意的就是在时间为1分钟的 ...
- Qt入门程序,通过qtcreater创建一个项目
2.1 使用向导创建 打开Qt Creator 界面选择 New Project或者选择菜单栏 [文件]-[新建文件或项目]菜单项 弹出New Project对话框,选择Qt Widgets Appl ...
- Python实现简单的闹钟/倒计时/番茄钟软件并打包成exe
文章目录 开发背景 程序界面及使用介绍 程序源码 使用Pyinstaller打包成exe 程序下载链接 备注 开发背景 玩电脑总是忘记休息,手机定闹钟太麻烦,在网上也没有搜索到符合我需求的极简软件,故 ...
- 从无到有的基于QT软件的DIY桌面番茄钟(上)
基于QT软件的DIY桌面番茄钟-上篇 前言 参考本教程(上篇)可实现的功能: 实现细节: Day 1: 需求导图: QT的安装: Day 2: 创建项目: 构建无边框界面(后续可添加缩放功能,未添加) ...
- 基于微信小程序实现番茄钟专注时间项目演示【附项目源码+论文说明】
基于微信小程序实现番茄钟专注时间项目演示 摘要 时间管理是指事先计划和运用一定的技能.方法和事物,以敏感.有效地利用时间完成既定的个人或安排的过程.其中番茄法则是一种先进的时间管理理论与方法,正受到越 ...
- 微信小程序--实现番茄钟功能
番茄钟: 经常使用番茄钟的各种app,自己也想尝试一下制作,该小程序主要实现了番茄时钟.效率统计等功能. 设计如下: 代码地址:https://gitcode.net/weiba_tao/myprac ...
- 利用python写时钟程序_如何用python编写一个番茄钟程序
今天,我们尝试用python来编写一个简单的PC端番茄钟,需要实现的功能如下:启动时"滴"一声并询问:"休息时间结束!是否开始一个新的番茄钟?" 如果用户点击& ...
- 备忘录,番茄钟,复盘反馈的学习类小程序
寒假完成的一个项目,对javascript真的是从零开始学起不过很好上手,借助于方便的云开发,也不用折腾后端,最后也顺利结题了. 本项目开发了一款软件,帮助大学生制作定制的学习计划,改善学习习惯,提高 ...
- 基于微信小程序实现番茄钟专注时间项目演示【附项目源码+论文说明】分享
基于微信小程序实现番茄钟专注时间项目演示 摘要 时间管理是指事先计划和运用一定的技能.方法和事物,以敏感.有效地利用时间完成既定的个人或安排的过程.其中番茄法则是一种先进的时间管理理论与方法,正受到越 ...
最新文章
- 阿里云Windows服务器重启后无法远程桌面连接,大量注册表在检测
- sysbench 性能测试
- DL之VGG16:基于VGG16迁移技术实现猫狗分类识别(图片数据量调整→保存h5模型)
- docker环境配置
- Oracle 创建,查询,删除 job
- boost::mp11::mp_transform_front相关用法的测试程序
- [HEOI2012] 朋友圈(最大团 + 结论 + 二分图 + 网络流)
- MyEclipse 10.5 安装SVN插件
- 没想到,我们的分布式缓存竟这样把注册中心搞垮!
- notnull注解_Hibernate Validator 第19篇:自定义约束-约束注解
- Linq Join
- Google中国要来啦
- 关于用户身份及密码问题的说明
- 一个简单的把对象序列化/反序列化为json格式的程序
- Tomcat控制台中文乱码怎么处理[已解决 绝对好用]
- Sql Server数据库中查询操作时“对象名无效”解决方法
- 【NCC】NCC 附件管理按钮开发,从ftp下载附件到文件服务器开发笔记
- C++的future,promise,packaged_task
- 互联网常见通用的运营数据指标
- 常见的POS打印机分类