溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用Qt實(shí)現(xiàn)鬧鐘小程序

發(fā)布時(shí)間:2021-08-03 09:41:49 來源:億速云 閱讀:196 作者:chen 欄目:編程語言

這篇文章主要介紹“怎么用Qt實(shí)現(xiàn)鬧鐘小程序”,在日常操作中,相信很多人在怎么用Qt實(shí)現(xiàn)鬧鐘小程序問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Qt實(shí)現(xiàn)鬧鐘小程序”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

本文實(shí)例為大家分享了Qt之鬧鐘小程序的具體代碼,供大家參考,具體內(nèi)容如下

-首先

首先我們利用Qt的designer 設(shè)計(jì)好我們需要的鬧鐘界面,設(shè)計(jì)界面如下圖:

其次我們來分別利用信號分別完成他們各自的槽函數(shù)在mainwindow.h中,我們定義了下面這些私有成員變量,如下:/ mainwindow.h文件/**

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QTimeEdit>#include <QTimer>#include <QLabel>#include <QMediaPlayer>#include <QLineEdit>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{  Q_OBJECTpublic:  explicit MainWindow(QWidget *parent = 0);  ~MainWindow();private slots:  void TimerResponse();  void on_pushButton_clicked();  void on_pushButton_2_clicked();  void on_radioButton_clicked();  void on_radioButton_2_clicked();  void on_radioButton_3_clicked();  void on_pushButton_3_clicked();private:  Ui::MainWindow *ui;  QTimeEdit *timeEdit;  QLabel *label_2;  QTime Temp;  QLineEdit *lineEdit;  QMediaPlayer *player = new QMediaPlayer;  QTimer *myTimer = new QTimer(this);};#endif // MAINWINDOW_H

這些私有變量就是上述界面的元素指針,其種 QMediaPlayer 這個(gè)類用于播放mp3 媒體文件,用之前得在 .pro 文件中添加如下代碼:

QT    += multimedia

這樣才能引入這個(gè)庫,接下來,我們開始在.cpp中完成各個(gè)槽函數(shù)。這里我們 得不斷檢測鬧鐘定時(shí)時(shí)間是否到達(dá)預(yù)設(shè)時(shí)間,我們必須得間隔500ms檢測一次,因此我們引入了定時(shí)器,QTimer,開啟之后,進(jìn)入循環(huán)檢測鬧鐘是否到點(diǎn)。這里,我們選用復(fù)選框來設(shè)置鈴聲,當(dāng)然也可以改為下拉菜單的方式。/ mainwindow.cpp文件/**

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDateTime>#include <QTime>int tt = 0;MainWindow::MainWindow(QWidget *parent) :  QMainWindow(parent),  ui(new Ui::MainWindow){  ui->setupUi(this);  ui->label_2->setVisible(false);  QObject::connect(myTimer, SIGNAL(timeout()),           this, SLOT(TimerResponse()) );  ui->pushButton->setDisabled(true);  //進(jìn)去后,失能開始 按鈕}MainWindow::~MainWindow(){  delete ui;}void MainWindow::on_pushButton_clicked(){  myTimer->start(500);      //star 按下,啟動(dòng)定時(shí)器  Temp = ui->timeEdit->time();  //獲取時(shí)鐘編輯器的值 ,為后續(xù) 系統(tǒng)時(shí)間的比較做準(zhǔn)備}void MainWindow::TimerResponse() //不斷檢查是否 定時(shí)時(shí)間到{  if (Temp.hour() == QTime::currentTime().hour() &&          Temp.minute() == QTime::currentTime().minute() )    //開始響鈴  {    ui->label_2->setVisible(true);    player->play();    myTimer->setSingleShot(true); //每次到點(diǎn)只能響鈴一次  }}void MainWindow::on_pushButton_2_clicked(){  tt++;  if(tt == 10) tt = 0;   else if(tt%2 == 1)    player->play();      else        player->stop();}void MainWindow::on_radioButton_clicked()   //選中鈴聲1{  ui->pushButton->setEnabled(true);  player->setVolume(30);  player->setMedia(QUrl::fromLocalFile("C:/Users/Zhangkai/Desktop/Qt_Example/demo7/邱永傳 - 傷心你的墮落.mp3"));  ui->lineEdit->setText("邱永傳 - 傷心你的墮落.mp3");}void MainWindow::on_radioButton_2_clicked()  //選擇鈴聲2{  ui->pushButton->setEnabled(true);  player->setVolume(30);  player->setMedia(QUrl::fromLocalFile("C:/Users/Zhangkai/Desktop/Qt_Example/demo7/邱永傳 - 十一年.mp3"));  ui->lineEdit->setText("邱永傳 - 十一年.mp3");}void MainWindow::on_radioButton_3_clicked()  //選擇鈴聲3{  ui->pushButton->setEnabled(true);  player->setVolume(30);  player->setMedia(QUrl::fromLocalFile("C:/Users/Zhangkai/Desktop/Qt_Example/demo7/邱永傳 - 十二年.mp3"));  ui->lineEdit->setText("邱永傳 - 十二年.mp3");}void MainWindow::on_pushButton_3_clicked(){  myTimer->setSingleShot(false); // 重置后,有意可以為下次準(zhǔn)備響鈴  ui->label_2->setVisible(false);  player->stop();}

至此,小小的鬧鐘界面就完成了,很簡單。但是對于了解Qt信號槽機(jī)制,很有幫助。同時(shí)使用了一個(gè)新類 QMediaPlayer 類。最后效果如下所示:

這里,只加入了三首歌,我們可以新增復(fù)選框嗎,然后在之后的復(fù)選框的槽函數(shù)中加入和上述復(fù)選框的槽函數(shù)類似的代碼,增加新的音樂。

到此,關(guān)于“怎么用Qt實(shí)現(xiàn)鬧鐘小程序”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

qt
AI