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();
复制代码
复制代码
        }
复制代码
    }
复制代码
}
复制代码
相关推荐
阳光开朗_大男孩儿2 小时前
DBUS属性原理
linux·服务器·前端·数据库·qt
Alphapeople3 小时前
Qt Modbus
开发语言·qt
竹林海中敲代码3 小时前
Qt Creator 集成开发环境 常见问题
qt·qt工具常见问题
长沙红胖子Qt8 小时前
关于 Qt运行加载内存较大崩溃添加扩大运行内存 的解决方法
开发语言·qt·qt扩大运行内存
gopher95118 小时前
qt相关面试题
开发语言·qt·面试
三玖诶17 小时前
在 Qt 中使用 QLabel 设置 GIF 动态背景
开发语言·qt·命令模式
只对您心动19 小时前
【QT】实现TCP服务器,客户端之间的通信
linux·服务器·c语言·开发语言·c++·qt·tcp/ip
Austim小白20 小时前
QT消息对话框学习
qt·学习
You can do more1 天前
Qt Model/View之代理
qt
杨~friendship1 天前
Ubuntu上使用qt和opencv显示图像
linux·开发语言·c++·qt·opencv·ubuntu