day 4

day 4_第1张图片1.闹钟

#ifndef WIDGET_H
#define WIDGET_H

#include 
#include 
#include 
#include 
#include 
#include 
#include 

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:

    Widget(QWidget *parent = nullptr);
    ~Widget();
    void timerEvent(QTimerEvent *event)override;

private slots:
    void on_btn1_clicked();

    void on_btn2_clicked();

private:
    Ui::Widget *ui;
    int timer_id,timer_id2;
    QTextToSpeech *speecher;

};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{

    ui->setupUi(this);
    timer_id=this->startTimer(1000);
    ui->btn2->setEnabled(0);
    speecher=new QTextToSpeech(this);


}
void Widget::timerEvent(QTimerEvent *event)
{
    QTime sys_time=QTime::currentTime();
    QString t=sys_time.toString("hh:mm:ss");
    //判断是阅读信号还是显示时间
    if(event->timerId()==timer_id)
    {
        ui->lab1->setText(t);
    }
    else if(event->timerId()==timer_id2)
    {
        if(ui->lineEdit->text()==t)
        {
            speecher->say(ui->textEdit->toPlainText());
        }
    }
    ui->lab1->setAlignment(Qt::AlignCenter);
    //编辑文本
    ui->lab1->setFont(QFont("微软雅黑",20));
}
Widget::~Widget()
{
    delete ui;
}


void Widget::on_btn1_clicked()
{
    ui->btn1->setEnabled(0);
    ui->lineEdit->setEnabled(0);
    ui->textEdit->setEnabled(0);
    ui->btn2->setEnabled(1);
    //发射判断阅读信号
    timer_id2=this->startTimer(1000);
}


void Widget::on_btn2_clicked()
{
    //停止后杀死信号
    this->killTimer(timer_id2);
    ui->btn1->setEnabled(1);
    ui->lineEdit->setEnabled(1);
    ui->textEdit->setEnabled(1);
    ui->btn2->setEnabled(0);
}

2.登录注册

void Widget::register_slot()
{
    int ret=QMessageBox::information(this,
                                     "注册提示",
                                     "确定要注册吗?",
                                     QMessageBox::Yes|QMessageBox::Cancel,
                                     QMessageBox::Cancel);
    if(ret==QMessageBox::Yes)
    {
        QString account=this->edit1->text();
        QString password=this->edit2->text();
        QString filename="F:/qtproject/QT/day1/zuoye/icon/1.txt";
        QFile file(filename);
        if(!file.exists())
        {
            qDebug() << "没有注册文件" << endl;
            return;
        }

        if(file.open(QFile::ReadOnly|QIODevice::Append))
        {
            QTextStream stream(&file);
            stream << account << " " << password << endl;
            qDebug() << "resiger sucess" << endl;
            file.close();

            return;
        }
    }
    else
    {
        edit2->clear();
    }
}
void Widget::login_slot()
{
    /*******************************************/
    //打开账号密码文件并准备匹配
    QString account=this->edit1->text();
    QString password=this->edit2->text();
    QString filename="F:/qtproject/QT/day1/zuoye/icon/1.txt";
    QFile file(filename);
    if(!file.exists())
    {
        qDebug() << "没有注册文件" << endl;
        return;
    }
    if(file.open(QFile::ReadWrite))
    {
    QTextStream stream(&file);
                bool found = false;
                while (!stream.atEnd()) {
                    QString line = stream.readLine();
                    QStringList parts = line.split(" ");
                    if (parts.size() == 2 && parts[0] == account && parts[1] == password)
                    {
                        QMessageBox::information(this,
                                                                 "提示",
                                                                 "登录成功",
                                                                 QMessageBox::Ok,
                                                                 QMessageBox::Ok);

                                this->close();
                                emit jump();
                        found = true;
                        break;
                    }
                }

                file.close();
                if (found) {

                           } else {
                               QMessageBox::warning(this, "登录失败", "账号或密码错误。");
                           }

    }

    /*******************************************************/
//    if(this->edit1->text()=="admin" && this->edit2->text()=="123456")
//    {
//        //qDebug() << "login success" ;
//        QMessageBox::information(this,
//                                         "提示",
//                                         "登录成功",
//                                         QMessageBox::Ok,
//                                         QMessageBox::Ok);

//        this->close();
//        emit jump();
//    }
    else
    {
        //qDebug() << "login fail";
        int ret=QMessageBox::critical(this,
                                         "提示",
                                         "账号或密码错误,是否重新登录?",
                                         QMessageBox::Yes|QMessageBox::Cancel,
                                         QMessageBox::Yes);
        if(ret==QMessageBox::Yes)
        {
            edit2->clear();
        }
        else
        {
            this->close();
        }
    }
}

3.时钟

你可能感兴趣的:(c++,qt,开发语言)