当前位置: 首页 > news >正文

2023/12/11 作业

1.思维导图

2.作业

成果:

第一个头文件

#ifndef TEST3GET_H
#define TEST3GET_H
 
#include <QWidget>
#include<QMessageBox>
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 <QWidget>
#include<QPushButton>
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 <QApplication>
 
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();
}
=======================================================================================
http://www.lryc.cn/news/257776.html

相关文章:

  • 【11】Qt Designer
  • 【算法优选】 动态规划之路径问题——贰
  • 从视频中截取指定帧图片
  • 2023最新vue安装(npm,yarn,国内镜像,vue安装,vue导包)全套教程2023年12月最新
  • 性能测试基础
  • 算法与数据结构--最短路径Dijkstra算法
  • ASP.NET Core 8 在 Windows 上各种部署模型的性能测试
  • 跨框架解决方案-Mitosis【Context】
  • 有哪些重要的项目是用 Python 开发的?
  • 【计算机网络】应用层电子邮件协议
  • 视频剪辑:视频转码实用技巧,批量将MP4转为MP3音频
  • 体系化学习运筹学基础算法的实践和总结
  • 【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史
  • 重写 AppiumService 类,添加默认启动参数,并实时显示启动日志
  • [方法论]allocation 空间内容分配
  • 家电制造数字孪生5G智能工厂可视化系统,加速家电制造产业数字化转型
  • Flink入门之部署(二)
  • SQL命令---修改字段名
  • 设计模式篇---代理模式
  • STM32单片机项目实例:基于TouchGFX的智能手表设计(2)UI交互逻辑的设计
  • ES-分析器
  • 智能优化算法应用:基于缎蓝园丁鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 【开发问题】vue的前端和java的后台,用sm4,实现前台加密,后台解密
  • 【算法专题】分治 - 快速排序
  • UG NX二次开发(C#)-求曲线在某一点处的法矢和切矢
  • leetcode 622. 设计循环链表
  • Linux:dockerfile编写搭建tomcat练习(9)
  • Linux 基础IO
  • uniapp 打开文件管理器上传(H5、微信小程序、android app三端)文件
  • 掌控安全 -- header注入