加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
widget.cpp 4.79 KB
一键复制 编辑 原始数据 按行查看 历史
#include "widget.h"
#include "ui_widget.h"
#include "myapp.h"
#include <QVBoxLayout>
#include "beeper.h"
#include "set.h"
#include <QProcess>
#include "heart_rate.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
shell_command();
ui->Name_label->setStyleSheet("color: white;"); // 设置按钮的文字颜色为白色
//建立背景;
//QLabel *background = new QLabel(this);
//background->setPixmap(QPixmap(":/Rescoure_File/Main_BK.png")); // 或者使用绝对路径
//background->setGeometry(0, 0, this->width(), this->height());
//background->lower(); // 将背景放在最底层
//background->show();
//建立背景;
//QLabel *background = new QLabel(this);
//background->setPixmap(QPixmap(":/Rescoure_File/Main_BK.png")); // 或者使用绝对路径
//background->setGeometry(0, 0, this->width(), this->height());
//background->lower(); // 将背景放在最底层
//background->show();
QPalette palette;//设置页面背景
palette.setBrush(QPalette::Background, QBrush(QPixmap(":/Rescoure_File/11.jpg").scaled(this->size())));
this->setPalette(palette);
//显示时间
this->timer1 = new QTimer(this);
//开启计时器
this->timer1->start(1000);
connect(this->timer1, &QTimer::timeout, this, &Widget::Time);
this->ui->healthy->setStyleSheet("border-image:url(:/Rescoure_File/database.png); ");
this->ui->sleep->setStyleSheet("border-image:url(:/Rescoure_File/24.png); ");
this->ui->heartRate->setStyleSheet("border-image:url(:/Rescoure_File/17.png); ");
}
Widget::~Widget()
{
delete ui;
}
void Widget::Time()
{
//显示时间
QString time = QDateTime::currentDateTime().toString("yyyy-MM-dd \n hh:mm:ss");
qint64 current_time = QDateTime::currentDateTime().currentSecsSinceEpoch();
// 在标签中显示当前时间
this->ui->time->setText(time);
// 遍历 Time_data 容器中的所有闹钟时间
for(int i = 0; i < set::Time_data.size(); ++i) {
qint64 alarmTime = set::Time_data[i];
// 检查当前时间是否到达某个闹钟时间
if(current_time == alarmTime) {
qDebug() << "Alarm triggered for time:" << alarmTime;
qDebug() << "Current time:" << current_time;
// 使能蜂鸣器
Beeper beeper; // 创建蜂鸣器对象
beeper.initialize(); // 初始化蜂鸣器
beeper.turnOn(); // 打开蜂鸣器
// 显示闹钟提醒弹窗
QMessageBox msgBox;
msgBox.setText("闹钟提醒");
msgBox.setInformativeText("点击 '我醒了' 或者 '一会儿再叫我'?");
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
int ret = msgBox.exec();
if(ret == QMessageBox::Ok) {
// 如果点击的是Ok,关闭蜂鸣器并删除当前闹钟时间
beeper.turnOff();
set::Time_data.removeAt(i);
--i; // 调整索引以避免跳过下一个元素
} else {
// 如果点击的是Cancel,关闭蜂鸣器并延迟当前闹钟时间
beeper.turnOff();
qint64 add_time = 300; // 延长5分钟(300秒)
set::Time_data[i] += add_time;
qDebug() << "时间延长5分钟:" << set::Time_data[i];
}
}
}
}
void Widget::on_time_clicked()
{
this->close();
myapp::getapp()->Set->show();
}
void Widget::on_sleep_clicked()
{
this->close();
myapp::getapp()->Sleep->show();
}
void Widget::on_healthy_clicked()
{
//点击健康按钮发送一个信号;
emit RefrashEmit();
this->close();
myapp::getapp()->Healthy->show();
}
void Widget::shell_command()
{
QProcess process;
// 设置要执行的命令
QString command("amixer set 'PGA-ADC Mux Left' 'MIC+preamp Left'"); // 举例:列出当前目录下的文件
// 开始执行命令
process.start(command);
// 等待命令执行完成
if (process.waitForFinished()) {
// 获取命令的标准输出
QString output = process.readAllStandardOutput();
qDebug() << output;
} else {
qDebug() << "命令1执行失败";
}
command = "amixer set 'PGA-ADC Mux Right' 'MIC+preamp Right'";
// 开始执行命令
process.start(command);
// 等待命令执行完成
if (process.waitForFinished()) {
// 获取命令的标准输出
QString output = process.readAllStandardOutput();
qDebug() << output;
} else {
qDebug() << "命令2执行失败";
}
}
void Widget::on_heartRate_clicked()
{
this->close();
myapp::getapp()->Heart->show();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化