升级优化自己应用程序的登录界面。
要求: 1. qss实现
需要有图层的叠加 (QFrame)
设置纯净窗口后,有关闭等窗口功能。
如果账号密码正确,则实现登录界面关闭,另一个应用界面显示。
cpp//发送端头文件 #ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> QT_BEGIN_NAMESPACE namespace Ui { class MyWidget; } QT_END_NAMESPACE class MyWidget : public QWidget { Q_OBJECT public: MyWidget(QWidget *parent = nullptr); ~MyWidget(); private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked(); void on_pushButton_3_clicked(); void on_pushButton_4_clicked(); signals: void my_signal_1(); void my_signal_2(); void my_jump(); private: Ui::MyWidget *ui; QPalette color; }; #endif // MYWIDGET_H //发送端源文件 #include "mywidget.h" #include "ui_mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) , ui(new Ui::MyWidget) { ui->setupUi(this); this->setWindowFlag(Qt::FramelessWindowHint); this->setAttribute(Qt::WA_TranslucentBackground); connect(this,&MyWidget::my_signal_1,[=](){ this->showMinimized(); }); connect(this,&MyWidget::my_signal_2,[=](){ if(this->window()->isMaximized()) { this->showNormal(); } else { this->showMaximized(); } }); } MyWidget::~MyWidget() { delete ui; } void MyWidget::on_pushButton_clicked() { if(ui->Username->text() == "admin" && ui->Passwd->text() == "123456") { this->close(); emit my_jump(); } else { ui->Username->setText("账号或密码不正确!"); ui->Passwd->clear(); } } void MyWidget::on_pushButton_2_clicked() { this->close(); } void MyWidget::on_pushButton_3_clicked() { emit my_signal_1(); } void MyWidget::on_pushButton_4_clicked() { emit my_signal_2(); } //接收端头文件 #ifndef SECOND_H #define SECOND_H #include <QWidget> #include <QMovie> namespace Ui { class Second; } class Second : public QWidget { Q_OBJECT public: explicit Second(QWidget *parent = nullptr); ~Second(); public slots: void jump_slot(); private: Ui::Second *ui; }; #endif // SECOND_H //接收端源文件 #include "second.h" #include "ui_second.h" Second::Second(QWidget *parent) : QWidget(parent), ui(new Ui::Second) { ui->setupUi(this); } Second::~Second() { delete ui; } void Second::jump_slot() { QMovie *mv = new QMovie(":/e043-iquxrui6424394.gif"); ui->label->setMovie(mv); mv->start(); ui->label->setScaledContents(1); this->show(); } //主函数 #include "mywidget.h" #include "second.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MyWidget w; w.show(); Second s; QObject::connect(&w,&MyWidget::my_jump,&s,&Second::jump_slot); return a.exec(); }
6.17作业
sjdghjh2024-06-18 0:07
相关推荐
coduck_S12004zbj6 分钟前
csp-j模拟五补题报告Death20011 分钟前
Qt 3D、QtQuick、QtQuick 3D 和 QML 的关系sukalot29 分钟前
windows C++-windows C++-使用任务和 XML HTTP 请求进行连接(二)qianbo_insist1 小时前
simple c++ 无锁队列zengy51 小时前
Effective C++中文版学习记录(三)MinBadGuy2 小时前
【GeekBand】C++设计模式笔记5_Observer_观察者模式QuantumStack4 小时前
【C++ 真题】B2037 奇偶数判断结衣结衣.5 小时前
C++ 类和对象的初步介绍学习使我变快乐5 小时前
C++:静态成员心怀花木5 小时前
【C++】多态