您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么用Qt實現鬧鐘小程序”,在日常操作中,相信很多人在怎么用Qt實現鬧鐘小程序問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Qt實現鬧鐘小程序”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
本文實例為大家分享了Qt之鬧鐘小程序的具體代碼,供大家參考,具體內容如下
-首先
首先我們利用Qt的designer 設計好我們需要的鬧鐘界面,設計界面如下圖:
其次我們來分別利用信號分別完成他們各自的槽函數在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 這個類用于播放mp3 媒體文件,用之前得在 .pro 文件中添加如下代碼:
QT += multimedia
這樣才能引入這個庫,接下來,我們開始在.cpp中完成各個槽函數。這里我們 得不斷檢測鬧鐘定時時間是否到達預設時間,我們必須得間隔500ms檢測一次,因此我們引入了定時器,QTimer,開啟之后,進入循環檢測鬧鐘是否到點。這里,我們選用復選框來設置鈴聲,當然也可以改為下拉菜單的方式。/ 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); //進去后,失能開始 按鈕}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_pushButton_clicked(){ myTimer->start(500); //star 按下,啟動定時器 Temp = ui->timeEdit->time(); //獲取時鐘編輯器的值 ,為后續 系統時間的比較做準備}void MainWindow::TimerResponse() //不斷檢查是否 定時時間到{ if (Temp.hour() == QTime::currentTime().hour() && Temp.minute() == QTime::currentTime().minute() ) //開始響鈴 { ui->label_2->setVisible(true); player->play(); myTimer->setSingleShot(true); //每次到點只能響鈴一次 }}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); // 重置后,有意可以為下次準備響鈴 ui->label_2->setVisible(false); player->stop();}
至此,小小的鬧鐘界面就完成了,很簡單。但是對于了解Qt信號槽機制,很有幫助。同時使用了一個新類 QMediaPlayer 類。最后效果如下所示:
這里,只加入了三首歌,我們可以新增復選框嗎,然后在之后的復選框的槽函數中加入和上述復選框的槽函數類似的代碼,增加新的音樂。
到此,關于“怎么用Qt實現鬧鐘小程序”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。