阿里網(wǎng)站怎么建設(shè)多地優(yōu)化完善疫情防控措施
小鬧鐘?
功能
當(dāng)按下啟動(dòng)按鈕時(shí),停止按鈕可用,啟動(dòng)按鈕不可用,鬧鐘無(wú)法設(shè)置,無(wú)法輸入自定義內(nèi)容
當(dāng)按下停止按鈕時(shí),暫停播報(bào),啟動(dòng)按鈕可用,鬧鐘可以設(shè)置,可以輸入自定義內(nèi)容
.pro文件
QT += core gui texttospeech
greaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.hFORMS += \widget.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += targetRESOURCES += \Icon.qrc
widget.h文件
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimer> //定時(shí)器類
#include <QTime> //時(shí)間類
#include <QTimerEvent> //定時(shí)器事件類的頭文件
#include <QDateTime> //日期時(shí)間類
#include <QDateTimeEdit>
#include <QDebug>
#include <QTextToSpeech> //朗讀
#include <QTextEdit>
#include <QMetaObject>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();//重寫定時(shí)器事件處理函數(shù)void timerEvent(QTimerEvent *event)override;signals:void my_signal();
private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();private:Ui::Widget *ui;//定義一個(gè)定時(shí)器的idint timer_id; //基于事件處理函數(shù)的定時(shí)器int timer_id1;QTextToSpeech *speech;int i = 0;int flag = 0;QString text;QDateTime sys_dt;};
#endif // WIDGET_H
main.cpp文件
#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}
widget.cpp文件
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setWindowTitle("小鬧鐘");timer_id = this->startTimer(5);ui->pushButton_2->setEnabled(false);ui->textEdit->setPlaceholderText("請(qǐng)輸入鬧鐘響時(shí)播報(bào)的內(nèi)容");this->setWindowIcon(QIcon(":/new/prefix1/666.png"));}Widget::~Widget()
{delete ui;
}void Widget::timerEvent(QTimerEvent *event)
{if(event->timerId()) //== timer_id) //用來(lái)判斷不同的定時(shí)器的id{//獲取當(dāng)前系統(tǒng)的日期時(shí)間sys_dt = QDateTime::currentDateTime();//展示時(shí)間到ui界面的lable2中ui->label->setText(sys_dt.toString("yyyy-MM-dd hh:mm:ss"));//居中顯示 標(biāo)簽文本對(duì)齊方式ui->label->setAlignment(Qt::AlignCenter);ui->label->setFont(QFont("微軟雅黑",20));QString timeText = sys_dt.toString("yyyy-MM-dd hh:mm:ss");QString timeText1 = ui->dateTimeEdit->text();if(flag == 1){if(timeText1 == timeText){speech->say(text); // 朗讀文本}}}
}
void Widget::on_pushButton_clicked()
{flag = 1;speech = new QTextToSpeech;text = ui->textEdit->toPlainText();ui->pushButton_2->setEnabled(true);ui->pushButton->setEnabled(false);ui->textEdit->setEnabled(false);ui->dateTimeEdit->setEnabled(false);
}void Widget::on_pushButton_2_clicked()
{flag = 0;ui->pushButton->setEnabled(true);ui->pushButton_2->setEnabled(false);ui->textEdit->setEnabled(true);ui->dateTimeEdit->setEnabled(true);speech->stop();
}
widget.ui文件
?