Day 72

作业

复制代码
#ifndef MAINWINDOW_H
复制代码
#define MAINWINDOW_H
复制代码
复制代码
#include <QMainWindow>
复制代码
复制代码
#include <QLineEdit>
复制代码
复制代码
#include <QLabel>
复制代码
复制代码
#include <QIcon>
复制代码
复制代码
#include <QPushButton>
复制代码
复制代码
#include <QMovie>
复制代码
复制代码
#include <QPainter>
复制代码
复制代码
#include <QWidget>
复制代码
复制代码
#include <QMessageBox>
复制代码
复制代码
#include <QDebug>
复制代码
复制代码
#include <QTextToSpeech> //文本转语音类
复制代码
复制代码
QT_BEGIN_NAMESPACE
复制代码
namespace Ui { class MainWindow; }
复制代码
QT_END_NAMESPACE
复制代码
复制代码
class MainWindow : public QMainWindow
复制代码
{
复制代码
    Q_OBJECT
复制代码
复制代码
public:
复制代码
    MainWindow(QWidget *parent = nullptr);
复制代码
    ~MainWindow();
复制代码
signals: //表示该权限下的,都是信号函数
复制代码
    void my_signal(); //自定义了一个信号, 只要声明 不要实现
复制代码
复制代码
public slots: //表示该权限下的,都是槽函数
复制代码
    void my_slot(); //自定义了一个槽函数, 既要声明 也要实现
复制代码
复制代码
private slots:
复制代码
    void on_pnt1_clicked();
复制代码
    void on_pnt1_2_clicked();
复制代码
复制代码
protected:
复制代码
    void paintEvent(QPaintEvent *event) override;
复制代码
private:
复制代码
    Ui::MainWindow *ui;
复制代码
// QPushButton *ptn2 ;
复制代码
//     QPushButton *ptn1;
复制代码
  QLineEdit *le1;
复制代码
   QLineEdit *le2;
复制代码
    QTextToSpeech *speecher;
复制代码
    signals:
复制代码
    void my_jump();
复制代码
};
复制代码
复制代码
#endif // MAINWINDOW_H
复制代码
#include "mainwindow.h"
复制代码
#include "ui_mainwindow.h"
复制代码
复制代码
MainWindow::MainWindow(QWidget *parent)
复制代码
    : QMainWindow(parent)
复制代码
    , ui(new Ui::MainWindow)
复制代码
//    ,ptn2(new QPushButton("登录",this))
复制代码
//    , ptn1(new QPushButton("退出",this))
复制代码
     , speecher(new QTextToSpeech(this))
复制代码
复制代码
{
复制代码
    ui->setupUi(this);
复制代码
    //设置窗口大小
复制代码
    this->resize(1025,533);
复制代码
    //固定窗口大小
复制代码
    this->setFixedSize(1025,533);
复制代码
    //设置窗口背景色,设置弧度
复制代码
    //this->setStyleSheet("background-image:url(D:\\360\\homwork\\beijing.png);");
复制代码
    //this->setStyleSheet("background-color:rgb(74,186,171)");
复制代码
复制代码
    //设置纯净窗口
复制代码
    this->setWindowFlag(Qt::FramelessWindowHint);
复制代码
复制代码
    //    //提示框4
复制代码
    //    QLabel *labe4 = new QLabel(this);
复制代码
    //    //设置标签位置
复制代码
    //    //labe4->move(52);
复制代码
    //    //设置标签大小
复制代码
    //    labe4->resize(1025,533);
复制代码
    //    //设置标签填充图片
复制代码
    //    labe4->setPixmap(QPixmap("D:\\360\\homwork\\beijing.png"));
复制代码
复制代码
    //    labe4->setScaledContents(true);
复制代码
    //提示标签1
复制代码
    QLabel *labe1 = new QLabel("密码登录",this);
复制代码
    //设置位置
复制代码
    labe1->move(500,70);
复制代码
    //设置长宽
复制代码
    labe1->resize(120,50);
复制代码
    //设置字体大小
复制代码
    //labe1->setStyleSheet("background-color:rgb(76,162,229);");
复制代码
    // 创建 QFont 实例,设置字体大小
复制代码
    QFont font = labe1->font();
复制代码
    font.setPointSize(16);  // 设置字体大小为 16 点
复制代码
复制代码
    // 应用字体设置到 QLabel
复制代码
    labe1->setFont(font);
复制代码
复制代码
复制代码
复制代码
    //提示标签2
复制代码
    QLabel *labe2 = new QLabel("短信登录",this);
复制代码
    //设置位置
复制代码
    labe2->move(710,70);
复制代码
    //设置长宽
复制代码
    labe2->resize(120,50);
复制代码
    //设置字体大小
复制代码
    //labe2->setStyleSheet("background-color:rgb(76,162,229);");
复制代码
    // 创建 QFont 实例,设置字体大小
复制代码
    QFont font1 = labe1->font();
复制代码
    font1.setPointSize(16);  // 设置字体大小为 16 点
复制代码
复制代码
    // 应用字体设置到 QLabel
复制代码
    labe2->setFont(font1);
复制代码
复制代码
     le1 =new QLineEdit(this);
复制代码
    //输入框1
复制代码
    //移动位置,相较于左上原点0,0
复制代码
    le1->move(460,125);
复制代码
    //设置输入框大小
复制代码
    le1->resize(430,60);
复制代码
    //设置默认显示
复制代码
    le1->setPlaceholderText("请输入账号");
复制代码
复制代码
    //设置弧度,设置背景色
复制代码
    le1->setStyleSheet("background-color:rgb(127,214,245);border-radius:5px");
复制代码
复制代码
复制代码
复制代码
复制代码
    //输入框2
复制代码
    le2 = new QLineEdit(this);
复制代码
    //移动位置,相较于左上原点0,0
复制代码
    le2->move(460,190);
复制代码
    //设置输入框大小
复制代码
    le2->resize(430,60);
复制代码
    //设置默认显示
复制代码
    le2->setPlaceholderText("请输入密码");
复制代码
    //设置弧度,设置背景色
复制代码
    le2->setStyleSheet("background-color:rgb(127,214,245);border-radius:5px");
复制代码
    //设置密码显示方式
复制代码
    le2->setEchoMode(QLineEdit::Password);
复制代码
复制代码
复制代码
    //标签1
复制代码
    QLabel *lab1 = new QLabel(this);
复制代码
    //设置标签图片
复制代码
    lab1->setPixmap(QPixmap("C:/Users/86173/Documents/Tencent Files/1846238059/FileRecv/pictrue/qq.png"));
复制代码
    //设置标签位置
复制代码
    lab1->move(410,135);
复制代码
    //设置标签大小
复制代码
    lab1->resize(50,50);
复制代码
    //图片适应标签大小
复制代码
    lab1->setScaledContents(true);
复制代码
    QLabel *lab2 = new QLabel(this);
复制代码
    //设置标签图片
复制代码
    lab2->setPixmap(QPixmap("C:\\Users\\86173\\Desktop\\delisha.png"));
复制代码
    //设置标签位置
复制代码
    lab2->move(410,195);
复制代码
    //设置标签大小
复制代码
    lab2->resize(50,50);
复制代码
    //图片适应标签大小
复制代码
    lab2->setScaledContents(true);
复制代码
复制代码
复制代码
    //按钮1
复制代码
    //QPushButton *ptn1 = new QPushButton("退出",this);
复制代码
    //设置坐标
复制代码
//    this->ptn1->move(460,290);
复制代码
//    //设置长宽
复制代码
//    this->ptn1->resize(200,50);
复制代码
//    //设置背景颜色,弧度,字体颜色
复制代码
//    this->ptn1->setStyleSheet("background-color:rgb(127,214,245);color:white;border-radius:5px");
复制代码
//    connect(ptn1, &QPushButton::clicked, this, &MainWindow::my_slot);
复制代码
复制代码
复制代码
//    //按钮2
复制代码
//    setEnabled(true);
复制代码
//    connect(ptn2, SIGNAL(clicked()), this, SLOT(my_slot()));
复制代码
复制代码
//    //设置坐标
复制代码
//    ptn2->move(690,290);
复制代码
//    //设置长宽
复制代码
//    ptn2->resize(200,50);
复制代码
//    //设置背景颜色,弧度,字体颜色
复制代码
//    ptn2->setStyleSheet("background-color:rgb(127,214,245);color:white;border-radius:5px");
复制代码
复制代码
    //提示框3
复制代码
    QLabel *labe3 = new QLabel("其他方式登录",this);
复制代码
    //设置标签位置
复制代码
    labe3->move(600,350);
复制代码
    //设置标签大小
复制代码
    labe3->resize(120,50);
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
//    //提示框4
复制代码
//    QLabel *labe5 = new QLabel(this);
复制代码
//    //设置标签位置
复制代码
//    labe5->move(670,410);
复制代码
//    //设置标签大小
复制代码
//    labe5->resize(60,60);
复制代码
//    //设置标签填充图片
复制代码
//    labe5->setPixmap(QPixmap("E:\\QT\\Qt\\pictrue\\weibo.png"));
复制代码
复制代码
//    labe5->setScaledContents(true);
复制代码
复制代码
复制代码
//    //提示框4
复制代码
//    QLabel *labe6 = new QLabel(this);
复制代码
//    //设置标签位置
复制代码
//    labe6->move(820,410);
复制代码
//    //设置标签大小
复制代码
//    labe6->resize(60,60);
复制代码
//    //设置标签填充图片
复制代码
//    labe6->setPixmap(QPixmap("E:\\QT\\Qt\\pictrue\\qq_1.png"));
复制代码
复制代码
//    labe6->setScaledContents(true);
复制代码
复制代码
    //动态图
复制代码
    QLabel *labe7 = new QLabel(this);
复制代码
    labe7->move(50,100);
复制代码
    labe7->resize(350,300);
复制代码
    QMovie *mv = new QMovie("D:\\360\\homwork\\maomaoyao.gif");
复制代码
    labe7->setMovie(mv);
复制代码
    mv->start();
复制代码
    labe7->setScaledContents(true);
复制代码
复制代码
}
复制代码
//void MyWidget::paintEvent(QPaintEvent *event) {
复制代码
//    QPainter painter(this);
复制代码
//    //QPixmap background("E:/QT/Qt/pictrue/Milk.png");
复制代码
//    //painter.drawPixmap(0, 0, width(), height(), background);
复制代码
//    QWidget::paintEvent(event);
复制代码
//}
复制代码
复制代码
void MainWindow::my_slot()
复制代码
{
复制代码
    this->close();
复制代码
}
复制代码
void MainWindow::paintEvent(QPaintEvent *event) {
复制代码
    QPainter painter(this);
复制代码
    QPixmap background("D:\\360\\homwork\\beijing.png");
复制代码
    painter.drawPixmap(0, 0, width(), height(), background);
复制代码
    QWidget::paintEvent(event);
复制代码
}
复制代码
复制代码
MainWindow::~MainWindow()
复制代码
{
复制代码
    delete ui;
复制代码
}
复制代码
复制代码
复制代码
void MainWindow::on_pnt1_clicked()
复制代码
{
复制代码
    QMessageBox msg(QMessageBox::Question, //图标
复制代码
                    "", //标题
复制代码
                    "您是否确定要退出登录?", //文本
复制代码
                    QMessageBox::Yes| QMessageBox::No, //按钮
复制代码
                    this  //指定父组件
复制代码
                    );
复制代码
    int ret =msg.exec();
复制代码
    if(ret==QMessageBox::Yes)
复制代码
    {
复制代码
        this->close();
复制代码
复制代码
    }
复制代码
    if(ret==QMessageBox::No)
复制代码
    {
复制代码
        QMessageBox::Close;
复制代码
    }
复制代码
}
复制代码
复制代码
void MainWindow::on_pnt1_2_clicked()
复制代码
{
复制代码
复制代码
    if(this->le1->text()=="admin"&&this->le2->text()=="123456")
复制代码
    //提示框3
复制代码
    {
复制代码
//    QLabel *labe9 = new QLabel("登录成功");
复制代码
//    speecher->say(labe9->text());
复制代码
//    //设置标签位置
复制代码
//    labe9->move(400,350);
复制代码
//    //设置标签大小
复制代码
//    labe9->resize(200,200);
复制代码
//    labe9->show();
复制代码
//    labe9->setStyleSheet("background-color:white;color:dark;border-radius:5px");
复制代码
//    labe9->setAlignment(Qt::AlignCenter);
复制代码
复制代码
                        //弹出一个警告对话框  QMessageBox   基于属性版本
复制代码
                         QMessageBox msg(QMessageBox::Information, //图标
复制代码
                                         "", //标题
复制代码
                                         "”登录成功", //文本
复制代码
                                         QMessageBox::Yes, //按钮
复制代码
                                         this  //指定父组件
复制代码
                                         );
复制代码
复制代码
                         int ret =msg.exec();
复制代码
                         if(ret==QMessageBox::Yes)
复制代码
                         {
复制代码
                             this->close();
复制代码
                             emit my_jump();
复制代码
                         }
复制代码
复制代码
复制代码
复制代码
复制代码
    }else
复制代码
    {
复制代码
//        QLabel *labe9 = new QLabel("登录失败,请重新输入");
复制代码
//        speecher->say(labe9->text());
复制代码
//        //设置标签位置
复制代码
//        labe9->move(300,100);
复制代码
//        //设置标签大小
复制代码
//        labe9->resize(400,300);
复制代码
//        labe9->setStyleSheet("background-color:white;color:dark;border-radius:5px");
复制代码
//        QFont font = labe9->font();
复制代码
//        font.setPointSize(100);
复制代码
//        labe9->setAlignment(Qt::AlignCenter);
复制代码
//        labe9->show();
复制代码
//        this->le1->clear();
复制代码
//        this->le2->clear();
复制代码
        QMessageBox msg(QMessageBox::Information, //图标
复制代码
                        "", //标题
复制代码
                        "登录失败,是否重新输入", //文本
复制代码
                        QMessageBox::Yes| QMessageBox::No, //按钮
复制代码
                        this  //指定父组件
复制代码
                        );
复制代码
复制代码
        int ret =msg.exec();
复制代码
        if(ret==QMessageBox::Yes)
复制代码
        {
复制代码
            this->le1->clear();
复制代码
            this->le2->clear();
复制代码
            QMessageBox::Close;
复制代码
        }
复制代码
        if(ret==QMessageBox::No)
复制代码
        {
复制代码
            this->close();
复制代码
复制代码
        }
复制代码
    }
复制代码
}
复制代码
相关推荐
尘中远3 小时前
【Qwt 7.0 系列】坐标轴与刻度系统 —— 刻度引擎、网格、图例与刻度朝内
qt·数据可视化·qcustomplot·qwt·工业软件·科学绘图
sycmancia5 小时前
Qt——多线程间的互斥
开发语言·qt
尘中远10 小时前
【Qwt 7.0 系列】常用图表类型实战 —— 柱状图、散点图、箱线图与直方图
qt·qwt·工业软件·科学绘图
尘中远10 小时前
【Qwt 7.0 系列】交互功能详解 —— 平移、缩放、坐标轴交互与数据拾取
qt·数据可视化·绘图·qcustomplot·qwt·科学绘图
sycmancia10 小时前
Qt——进程与线程的概念
qt
郝学胜-神的一滴11 小时前
Qt 高级编程 034:深耕QWidget底层内核—彻底吃透无边框窗口设计核心原理
开发语言·c++·qt·程序人生·软件开发·用户界面
尘中远12 小时前
【Qwt 7.0 系列】3D 数据可视化 —— OpenGL 高性能三维绘图
qt·3d·qcustomplot·qwt·科学绘图·高性能绘图
满天星830357712 小时前
【Qt】控件(二) (geometry及与frameGeometry的区别)
开发语言·qt
大气的小蜜蜂12 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·qt·sqlite
尘中远12 小时前
【Qwt 7.0 系列】总体架构解析 —— 从单体到三库模块化的演进
qt·matplotlib·绘图·qwt·科学绘图