2023/12/11 作业

2023/12/11 作业_第1张图片1.思维导图

2.作业

成果:

第一个头文件

#ifndef TEST3GET_H
#define TEST3GET_H
 
  
#include 
#include
QT_BEGIN_NAMESPACE
namespace Ui { class test3get; }
QT_END_NAMESPACE
 
  
class test3get : public QWidget
{
    Q_OBJECT
 
  
public:
    test3get(QWidget *parent = nullptr);
    ~test3get();
    //声明信号函数
signals:
    void my_signal();
    //声明槽函数
private slots:
    void on_pushButton_clicked();
 
  
private:
    Ui::test3get *ui;
};
#endif // TEST3GET_H

========================================================================

第二个头文件

#ifndef SENCEND_H
#define SENCEND_H
 
  
#include 
#include
namespace Ui {
class sencend;
}
 
  
class sencend : public QWidget
{
    Q_OBJECT
 
  
public:
    explicit sencend(QWidget *parent = nullptr);
    ~sencend();
 
  
private:
    Ui::sencend *ui;
//声明信号函数
signals:
void  mysignal();
//声明槽函数
public slots:
    void s_slots();
    void  my_slots();
};
 
  
#endif // SENCEND_H
=======================================================================================

第一个实现文件

#include "test3get.h"
#include "ui_test3get.h"
 
  
test3get::test3get(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::test3get)
{
    //关闭画面头
this->setWindowFlag(Qt::FramelessWindowHint);
 
  
    this->setAttribute(Qt::WA_TranslucentBackground);
    ui->setupUi(this);
}
 
  
test3get::~test3get()
{
    delete ui;
}
 
  
//建立槽函数
void test3get::on_pushButton_clicked()
{
    //判断用户名和密码是否正确
    if(ui->username->text()=="addmin"&&ui->password->text()=="123456")
    {
//建立一个接收值
    int res;
    //建立属性对话框
       QMessageBox msg(
                   //是否有图标
        QMessageBox::NoIcon,
    //信息头
         "信息内容",
                   //信息内容
          "登录成功",
                   //按钮
          QMessageBox::Ok|QMessageBox::No,
                   //指定父组件
                this
    );
       //弹出对话框
   res=msg.exec();
   //点击判断是否为ok
   if(res==QMessageBox::Ok)
   {
       //关闭挡墙页面
     this->close();
       //并发送一个信号函数让其他槽函数接收到
       emit my_signal();
 
  
   }
    }
    else{
        //静态成员对话框
          int res=QMessageBox::question(
                      //父组件
                     this,
                      //对话框信息头
                      "消息内容",
                      //对话框信息内容
                      "用户名或密码错误",
                      //按钮yes/no
                      QMessageBox::Yes|QMessageBox::No
                     );
          //点击yes
          if(res==QMessageBox::Yes)
          {
             // 清空username
              this->ui->username->clear();
              //清空password
              this->ui->password->clear();
              //点击no就关闭窗口
          }else  if(res==QMessageBox::No){
              //关闭窗口
              this->close();
          }
    }
}
=======================================================================================

第二个实现文件

#include "sencend.h"
#include "ui_sencend.h"
 
  
sencend::sencend(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::sencend)
{
    ui->setupUi(this);
    //删除页面头
    this->setWindowFlag(Qt::FramelessWindowHint);
}
 
  
sencend::~sencend()
{
    delete ui;
}
 
  
void sencend::s_slots()
{
    //生成第二个页面
   this->show();
    //点击exit退出
    connect(ui->exit,&QPushButton::clicked,this,&sencend::my_slots);
}
//exit退出
void sencend::my_slots()
{
//关闭sencend页面
    this->close();
}
=======================================================================================

main函数

#include "test3get.h"
#include "sencend.h"
#include 
 
  
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    test3get w;
 
  
    w.show();
    //建立一个sencend对象
    sencend s;
    //按钮实现形成两个页面的切换
    QObject::connect(&w,&test3get::my_signal,&s,&sencend::s_slots);
    return a.exec();
}
=======================================================================================

你可能感兴趣的:(qt)