1. 程式人生 > 其它 >讓Qt給你報時,為你讀詩詞 之 Qt5 TTS

讓Qt給你報時,為你讀詩詞 之 Qt5 TTS

對,Qt沒有食言,9月底如期釋出了6.2 LTS。嗯,昨天是9月30日,是月底沒錯,準時沒毛病。部落格地址如下

https://www.qt.io/blog/qt-6.2-lts-release

對於老王這樣的普通的不能再普通的使用者,只需要知道,Qt 6.2補充完善了Qt 5.15中原有的模組,可以試著過渡。隨著微軟新版本Windows11的推送在即,Qt的多平臺支援也有了更新。

暫時不考慮版本帶來的區別,重點進行今天的小製作,編寫一個可以給你自動報時和朗讀詩詞的應用程式。

一、建立空白桌面工程

新建Widgete App

選擇生成UI檔案。

然後編譯執行,驗證下當前工程可用。

二、新增TTS語音功能類

朗讀文字

包含標頭檔案
#include <QtTextToSpeech/QTextToSpeech>
qmake新增模組
QT       += core gui texttospeech
例項化
QTextToSpeech *tts = new QTextToSpeech(this);

UI介面新增文字編輯框和按鈕,並修改名字

此時可以先測試下TTS是否可以正常工作,因為這個功能要依賴執行平臺的TTS引擎。可以在按鍵的槽函式內直接輸出明確的文字,然後執行測試。

void MainWindow::on_pushButton_rd_clicked()
{
    if(tts->state() == QTextToSpeech::Ready){
        tts
->say("你好,我是Qt"); //tts->say(ui->textEdit->toPlainText()); } }

測試通過註釋掉上一行程式碼,使用下一行,執行程式後在文字框輸入“你好,我是Qt”,點選朗讀按鈕,就可以欣賞一個女生為你讀詩了。錄音在下面也上傳了哦。

三、獲取當前時間,語音報時

新增用到的標頭檔案
#include <QTimer>
#include <QDateTime>

new一個定時器
QTimer *timer = new QTimer(this);

定義顯示時間文字的槽函式
void
MainWindow::timeup(void){ QDateTime time = QDateTime::currentDateTime(); QString str = time.toString("yyyy-mm-dd hh:mm:ss -- dddd"); ui->label_time->setText(str); } 繫結訊號和槽並開啟定時器 connect(timer,SIGNAL(timeout()),this,SLOT(timeup())); timer->start(1000);

新增報時觸發按鈕和對應的槽函式,執行效果

這樣就實現了兩個功能,語音報時和朗讀詩詞。看到這裡是不是也對Qt產生興趣了呢。