qt实现闹钟小程序

基于QT Creator实现的闹钟小程序

这是我第一次写博客,写的不好见谅,将我的作品写成博客作为一个纪录和给QT的初学者和学生一个参考。首先在工程文件中添加qt+= multimedia语句,否则无法使用声音功能。

UI设计界面

qt实现闹钟小程序_第1张图片
这个界面比较简单,主要是为了实现这个功能没有特意去做美观

MainWindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include
#include
#include
#include
#include
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void getTime();//获取当前时间的函数
void setMedia1();//设置播放第一首音乐
void setMedia2();//第二首
void setMedia3();//第三首
private slots:
void on_pushButton_clicked();

void on_timeEdit_editingFinished();


void on_pushButton_2_clicked();


void on_pushButton_3_clicked();


void on_radioButton_clicked();


void on_radioButton_2_clicked();


void on_radioButton_3_clicked();


void on_pushButton_4_clicked();
void checkFun();//检查当前时间是否到达设置的时间,此函数必须放在private slots中

private:
Ui::MainWindow *ui;
QTime tempTime;//临时时间,用于存放设置好的时间
QMediaPlayer player;//设置播放器
int checkNum;//设置播放第几首音乐的变量
QTimer *timer1=new QTimer(this);//设置定时器
};

#endif // MAINWINDOW_H

MainWindow.cpp/

#include “mainwindow.h”
#include “ui_mainwindow.h”
#include
#include
#include
#include
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->ui->lineEdit->setText("");//将消息框设置空
}

MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::getTime()//获取当前时间函数
{
QTime t;
int h=t.currentTime().hour();
int min=t.currentTime().minute();
int sec=t.currentTime().second();
qDebug()<<“当前时间为:”< this->ui->lineEdit->setText(“当前时间为:”+t.currentTime().toString());//在消息框中显示当前时间
}
void MainWindow::setMedia1()//设置播放器播放的路径为第一首
{
player.setVolume(30);
player.setMedia(QUrl::fromLocalFile(“D:/KuGou/Beyoncé - Halo.mp3”));//后面是播放音乐的文件路径
}
void MainWindow::setMedia2()//设置播放器播放的路径为第二首
{
player.setVolume(30);
player.setMedia(QUrl::fromLocalFile(“D:/KuGou/Adele - Set Fire to the Rain.mp3”));
}
void MainWindow::setMedia3()//设置播放器播放的路径为第三首
{
player.setVolume(30);
player.setMedia(QUrl::fromLocalFile(“D:/KuGou/Erika Selin - Break Me Up.mp3”));
}
void MainWindow::on_pushButton_clicked()//获取当前时间按钮槽函数
{
MainWindow::getTime();//一旦按下当前时间按钮则调用获取当前时间函数
}

void MainWindow::on_timeEdit_editingFinished()//时间设置框函数
{
tempTime=this->ui->timeEdit->time();//将时间设置框的时间赋值给tempTime
qDebug()< qDebug()<<“设置时间成功”;
this->ui->lineEdit->setText(“设置闹钟时间为:”+tempTime.toString());//消息框显示设置时间
}

void MainWindow::on_pushButton_2_clicked()//播放按钮函数
{
if(checkNum1)//如果是选择的音乐1,则将播放器的地址选择为第一曲
MainWindow::setMedia1();
else if(checkNum
2)
MainWindow::setMedia2();//如果是选择的音乐2,则将播放器的地址选择为第二曲
else if(checkNum==3)
MainWindow::setMedia3();//如果是选择的音乐3,则将播放器的地址选择为第三曲
player.play();//播放器开始播放音乐
qDebug()<<“开始播放”;
this->ui->lineEdit->setText(“播放”);//消息框显示播放
}

void MainWindow::on_pushButton_3_clicked()//暂停按钮槽函数
{
player.stop();
qDebug()<<“暂停”;
this->ui->lineEdit->setText(“暂停”);
}

void MainWindow::on_radioButton_clicked()//音乐1选择按钮函数
{
checkNum=1;//将选择播放哪首音乐的变量赋值为1
}

void MainWindow::on_radioButton_2_clicked()//音乐2选择按钮函数
{
checkNum=2;//将选择播放哪首音乐的变量赋值为2
}

void MainWindow::on_radioButton_3_clicked()//音乐3选择按钮函数
{
checkNum=3;//将选择播放哪首音乐的变量赋值为3
}

void MainWindow::on_pushButton_4_clicked()//设置完成按钮函数
{
connect(timer1,SIGNAL(timeout()),this,SLOT(checkFun()));//定时器timer每隔一段时间执行checkFun函数
timer1->start(1000);//设置间隔时间为一秒
qDebug()

}
void MainWindow::checkFun()//检查当前时间是否和设置的时间相同
{
qDebug()<<“更新”;
QTime t;
if(tempTime.hour()==t.currentTime().hour()&&tempTime.minute()==t.currentTime().minute())
{
MainWindow::on_pushButton_2_clicked();//当时间相同时,开始执行播放函数,播放选择好的音乐
timer1->stop();//让定时器停止工作,因为只让闹钟执行一次
}
}

main.cpp

不做任何改动

运行截图

qt实现闹钟小程序_第2张图片

qt实现闹钟小程序_第3张图片

你可能感兴趣的:(qt)