QT作业2

1>

代码:

头文件

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<iostream>
#include<QDebug>
#include<QIcon>
#include<QPushButton>
#include<QLabel>
#include<QMovie>
#include<QLineEdit>
#include<QMessageBox>
#include<QTimer>
#include<QTime>
#include<QString>
#include<QTimerEvent>
#include<QPushButton>
#include<QDateTime>
#include<QTextToSpeech>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

public slots:
    void timeout_slot();        //自定义槽函数的声明
    void my_start();
    void my_cancel();

private:
    Ui::Widget *ui;

    QTimer t1;
    QLabel *lab1;
    QLabel *lab2;
    QLineEdit *edit1;
    QPushButton *btn1;
    QPushButton *btn2;
    QTextToSpeech *s1;
};
#endif // WIDGET_H

源文件

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setFixedSize(1000,800);        //设置固定尺寸

    this->setWindowIcon(QIcon(":/picture/1.png"));

    //标签1:显示系统时间
    this->lab1 = new QLabel("时间",this);
    lab1->resize(500,150);
    lab1->move(50,50);
    lab1->setStyleSheet("background-color:yellow;");
    this->lab1->setAlignment(Qt::AlignCenter);  //居中
    connect(&t1, &QTimer::timeout, this, &Widget::timeout_slot);  //连接定时器
    t1.start(1000);

    //文本框1:写闹钟时间
    this->edit1 = new QLineEdit(this);
    edit1->resize(350,75);
    edit1->move(600,50);
    edit1->setPlaceholderText("闹钟");

    //按钮1:启动
    this->btn1 = new QPushButton("启动",this);
    btn1->resize(100,50);
    btn1->move(650,150);
    connect(this->btn1, &QPushButton::clicked, this, &Widget::my_start);

    //按钮2:取消
    this->btn2 = new QPushButton("取消",this);
    btn2->resize(100,50);
    btn2->move(800,150);
    btn2->setEnabled(false);
    connect(this->btn2, &QPushButton::clicked, this, &Widget::my_cancel);

    //标签2
    this->lab2 = new QLabel(this);
    lab2->resize(1000,550);
    lab2->move(0,250);
    lab2->setStyleSheet("background-color:pink;");
    lab2->setPixmap(QPixmap(":/picture/study.png"));  //贴图
    lab2->setScaledContents(true);

    this->s1 = new QTextToSpeech(this);

}

Widget::~Widget()
{
    delete ui;
}

void Widget::timeout_slot()
{
    //获取系统时间
    QTime sysTime = QTime::currentTime();
    QString tm = sysTime.toString("hh:mm:ss");
    lab1->setText(tm);
    lab1->setAlignment(Qt::AlignCenter); //居中
    QFont f;                            //设置字体大小
    f.setPointSize(50);
    lab1->setFont(f);
    if(lab1->text() == edit1->text())
    {
        btn1->setEnabled(true);
        btn2->setEnabled(false);
        edit1->setEnabled(true);
        edit1->clear();
        s1->say("劝学\
                三更灯火五更鸡,正是男儿读书时。\
                黑发不知勤学早,白首方悔读书迟。");
    }
}

void Widget::my_start()
{
    btn1->setEnabled(false);
    btn2->setEnabled(true);
    edit1->setEnabled(false);
}

void Widget::my_cancel()
{
    btn1->setEnabled(true);
    btn2->setEnabled(false);
    edit1->setEnabled(true);
    edit1->clear();
}

运行结果:

2>思维导图

相关推荐
xiaoshuaishuai812 小时前
C# AvaloniaUI动态显示图片
开发语言·c#
日光明媚12 小时前
一步生成视频!One-Forcing:DMD + 零成本 GAN,训练 200 步超越多步 SOTA
android·开发语言·kotlin
2301_8035389512 小时前
Java读取Word图片的两种实用方法
java·开发语言·word
bug和崩溃我都要14 小时前
Qt 封装 libmpv 全功能视频播放器开发指南
开发语言·qt·音视频
郝学胜-神的一滴14 小时前
Qt 高级开发 018:复刻经典登录界面布局与窗口美化全解析
开发语言·c++·qt·程序人生·用户界面
郝亚军14 小时前
IEEE 754 单精度浮点的SEM表示
开发语言·c++·算法
zhangjw3414 小时前
第15篇:Java多线程零基础入门,进程线程、线程创建方式、线程生命周期、线程安全彻底吃透
java·开发语言·面试
蝈理塘(/_\)大怨种14 小时前
类和对象 (上)
java·开发语言
小新11015 小时前
qt creator 将qInfo的输出日志写入日志文档,方便查看
开发语言·qt
hssfscv15 小时前
QT的学习记录1
开发语言·qt·学习