欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt自制一個(gè)小鬧鐘的實(shí)現(xiàn)示例

 更新時(shí)間:2023年09月05日 09:23:17   作者:ck釘釘釘  
本文主要介紹了Qt自制一個(gè)小鬧鐘的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

功能

當(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 += widgets
CONFIG += 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.0
SOURCES += \
    main.cpp \
    widget.cpp
HEADERS += \
    widget.h
FORMS += \
    widget.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
RESOURCES += \
    Icon.qrc

widget.h文件

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTimer>      //定時(shí)器類(lèi)
#include <QTime>       //時(shí)間類(lèi)
#include <QTimerEvent>   //定時(shí)器事件類(lèi)的頭文件
#include <QDateTime>     //日期時(shí)間類(lèi)
#include <QDateTimeEdit>
#include <QDebug>
#include <QTextToSpeech>    //朗讀
#include <QTextEdit>
#include <QMetaObject>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    //重寫(xiě)定時(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í)器的id
    int 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文件

到此這篇關(guān)于Qt自制一個(gè)小鬧鐘的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Qt 鬧鐘內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論