欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > Qt 0820作业

Qt 0820作业

2025/2/22 2:17:11 来源:https://blog.csdn.net/Yadi_dr1/article/details/141368277  浏览:    关键词:Qt 0820作业

一、思维导图

二、闹钟

头文件代码

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTime>        //时间类
#include <QTimer>       //时间事件类
#include <QTimerEvent>  //定时器事件类
#include <QMouseEvent>  //鼠标事件类
#include <QPoint>       //向量类
#include <QMessageBox>  //对话框类
#include <QDebug>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();//重写timerEvent()函数的声明void timerEvent(QTimerEvent *e);/*鼠标事件函数声明*/void mousePressEvent(QMouseEvent *event) override;      //按下void mouseMoveEvent(QMouseEvent *event) override;       //移动private slots:void on_startBtn_clicked();private:Ui::Widget *ui;int id;     //定时器idQPoint p; //记录当前鼠标位置QTime alarmTime;    //闹钟时间
};
#endif // WIDGET_H

源文件代码

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setWindowFlag(Qt::FramelessWindowHint);  //纯净窗口this->setAttribute(Qt::WA_TranslucentBackground);   //去黑框QDate sys_date = QDate::currentDate();QString date = sys_date.toString("yyyy年MM月dd日");ui->dataLabel->setText(date);//启动一个定时器id = startTimer(1000);  //每秒自动执行timerEvent()
}Widget::~Widget()
{delete ui;
}//定时器超时自动执行功能函数
void Widget::timerEvent(QTimerEvent *e)
{int count = 0;if(e->timerId() == id){//获取系统时间QTime sys_time = QTime::currentTime();//时间转换字符串QString time = sys_time.toString("hh:mm:ss");//将系统时间放入labui->timeLabel->setText(time);//文本居中显示ui->timeLabel->setAlignment(Qt::AlignCenter);if(sys_time >= alarmTime && !alarmTime.isNull()){ui->textEdit->setText("时间到了!");
//            qDebug() << "时间到了";count++;if(count == 10) //闹钟响一分钟{alarmTime = QTime();ui->textEdit->setText("~~~~~~~");count = 0;}}}
}//重写鼠标按下事件函数实现
void Widget::mousePressEvent(QMouseEvent *event)
{//当前窗口坐标p = event->pos();
}//重写鼠标移动事件函数实现
void Widget::mouseMoveEvent(QMouseEvent *event)
{//判断是否是左键按下if(event->buttons() == Qt::LeftButton){//窗口移动this->move(event->globalPos() - p);//全局坐标    当前窗口坐标}
}void Widget::on_startBtn_clicked()
{alarmTime = QTime::fromString(ui->clockEdit->text(), "hh:mm:ss");if(alarmTime.isValid()){QMessageBox msg(QMessageBox::Information,"提示","闹钟设置成功",QMessageBox::Ok,this);msg.exec();}else{QMessageBox msg(QMessageBox::Warning,"警告","格式设置有误",QMessageBox::Ok,this);msg.exec();}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词