QT作业2

使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数

将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,则输出“登录成功”,并关闭该界面,如果匹配失败,则输出登录失败,并将密码框中的内容清空

头文件:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>
#include <QIcon>
#include <QLabel>      //标签类
#include <QMovie>      //动图类
#include <QLineEdit>   //行编辑器类
#include <QPushButton> //按钮类QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();signals:void my_signal1();public slots:void my_slots1();void my_slots2();private:Ui::Widget *ui;QLabel *lab1;QLabel *lab2;QLabel *lab3;QLineEdit *edit1;QLineEdit *edit2;QPushButton *btn1;QPushButton *btn2;
};
#endif // WIDGET_H

源文件:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置并固定窗口大小this->setFixedSize(600,500);
//    //设置窗口的图片
//    this->setWindowIcon(QIcon(":/pictrue/1.jpg"));
//    //设置窗口的标题
//    this->setWindowTitle("登录账号界面");this->setWindowFlag(Qt::FramelessWindowHint);//创建一个标签类指针同时将父对象设为当前this指针指向的对象wlab1 = new QLabel(this);//设置标签大小lab1->resize(600,150);//创建一个动图类指针接收动图QMovie *mv = new QMovie(":/pictrue/dt.gif");//将动图放入标签中lab1->setMovie(mv);//让动图动起来mv->start();//自动适应lab1lab1->setScaledContents(true);//创建一个标签类指针同时将父对象设为当前this指针指向的对象wlab2 = new QLabel(this);//设置标签的大小lab2->resize(50,50);//移动标签的位置lab2->move(170,200);//设置标签的图片lab2->setPixmap(QPixmap(":/pictrue/2.jpg"));//自动适应lab2lab2->setScaledContents(true);//创建一个标签类指针同时将父对象设为当前this指针指向的对象wlab3 = new QLabel(this);//设置标签的大小lab3->resize(50,50);//移动标签的位置lab3->move(170,260);//设置标签的图片lab3->setPixmap(QPixmap(":/pictrue/3.jpg"));//自动适应lab3lab3->setScaledContents(true);//创建一个行编辑器类的指针同时将父对象设为当前this指针指向的对象wedit1 = new QLineEdit(this);//设置行编辑器的大小edit1->resize(200,50);//移动行编辑器的位置edit1->move(220,200);//占位edit1->setPlaceholderText("账号");//创建一个行编辑器类的指针同时将父对象设为当前this指针指向的对象wedit2 = new QLineEdit(this);//设置行编辑器的大小edit2->resize(200,50);//移动行编辑器的位置edit2->move(220,260);//占位edit2->setPlaceholderText("密码");//设置显示模式edit2->setEchoMode(QLineEdit::Password);//创建一个按钮类的指针同时设置文本并将父对象设为当前this指针指向的对象wbtn1 = new QPushButton("登录",this);//设置按钮大小btn1->resize(140,50);//移动按钮的位置btn1->move(150,350);//设置按钮的颜色btn1->setStyleSheet("background-color:rgb(40,200,250)");//创建一个按钮类的指针同时设置文本并将父对象设为当前this指针指向的对象wbtn2 = new QPushButton("取消",this);//设置按钮大小btn2->resize(140,50);//移动按钮的位置btn2->move(300,350);//设置按钮的颜色btn2->setStyleSheet("background-color:rgb(40,200,250)");//手动连接信号和自定义的槽函数 基于qt4版的连接  btn2发信号给当前窗口connect(btn2,SIGNAL(clicked()),this,SLOT(my_slots1()));//手动连接信号和自定义的槽函数 基于qt5版的连接 btn1发信号给当密码编辑器connect(btn1,&QPushButton::clicked,this,&Widget::my_slots2);
}Widget::~Widget()
{delete ui;
}//自定义的槽函数
void Widget::my_slots1()
{//关闭当前窗口this->close();
}void Widget::my_slots2()
{//检查账号密码是否正确if(edit1->text() == "admin" && edit2->text() == "123456"){qDebug() << "登录成功";//成功则关闭窗口this->close();}else{qDebug() << "登录失败";//失败则清空密码编辑器的内容edit2->setText("");}
}

主函数文件:

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

运行结果:

思维导图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/259300.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HGNN复现

python版本&#xff1a;3.6.13 torch版本&#xff1a;http://download.pytorch.org/whl/cpu/torch-0.4.0-cp36-cp36m-win_amd64.whl 安装torch&#xff1a; pip install http://download.pytorch.org/whl/cpu/torch-0.4.0-cp36-cp36m-win_amd64.whl 除了numpy、matplotlib、…

Meta Platforms推出Imagine:基于Emu的免费AI文本到图像生成器服务

优势主要体现在以下两个方面&#xff1a; 精细运动控制&#xff1a; 该项目在实现摄像机运动和物体运动方面表现出色&#xff0c;成功实现了对两者运动的高度独立控制。这一特性为运动控制提供了更为精细的调整空间&#xff0c;使得在视频生成过程中能够实现更灵活、多样的运动…

042:el-table表格表头自定义高度(亲测好用)

第042个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

基于Java的招聘系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

机器人纯阻抗控制接触刚性环境

问题描述 在机器人学中&#xff0c;阻抗控制是一种常用的控制策略&#xff0c;用于管理机器人在与环境交互时的运动和力。阻抗控制背后的关键概念是将环境视为导纳&#xff0c;而将机器人视为阻抗。 纯阻抗控制接触刚性环境时&#xff0c;机器人的行为方式主要受其阻抗参数的…

微信小程序基础开发

基本概念&#xff1a; 小程序宿主环境 | 微信开放文档 语法结构入门&#xff1a; 1.WXML讲解&#xff1a; 教程 | 《小程序开发指南》 &#xff08;1&#xff09;数据绑定&#xff1a; WXML 通过 {{变量名}} 来绑定 WXML 文件和对应的 JavaScript 文件中的 data 对象属性。 &am…

GEE错误——Feature.select: Parameter ‘input‘ is required. (Error code: 3)

我正在尝试从形状文件中提取多个多边形的时间序列。 (代码)。不幸的是,我收到一个错误(如下),该错误似乎与功能标识符中的缺失值相关。 错误: Error: Error in map(ID=00000000000000000000): Feature.select: Parameter input is required. (Error code: 3) 原始的矢…

超静音的两相步进电机国产驱动芯片GC6609,为什么可替代TMC2208/2209/trinamic的数据分析

GC6609 是一款超静音的两相步进电机驱动芯片&#xff0c;内置最大 256 细分的步进驱动模式&#xff0c; 超静音&#xff0c;低振动。芯片可以工作在 4~36V 的宽工作电压范围内&#xff0c;平均工作电流可以达到 2A&#xff0c;峰值电流 4A。内置自动增益控制环路&#xff08;AG…

一篇文章带你快速入门 Vue 核心语法

一篇文章带你快速入门 Vue 核心语法 一、为什么要学习Vue 1.前端必备技能 2.岗位多&#xff0c;绝大互联网公司都在使用Vue 3.提高开发效率 4.高薪必备技能&#xff08;Vue2Vue3&#xff09; 二、什么是Vue 概念&#xff1a;Vue (读音 /vjuː/&#xff0c;类似于 view) …

UiPath:人工智能和重新加速增长是 2024 年的好兆头

UiPath&#xff08;NYSE&#xff1a;PATH&#xff09;重新加速增长&#xff0c;同时在销售和营销方面变得最高效&#xff0c;使其成为进入 2024 年的有吸引力的成长型股票。 UiPath 最初被归类为机器人流程自动化 (RPA) 公司&#xff0c;现在认为自己是一家人工智能驱动的自动…

【ML】softmax简单理解。

softmax 和 hardmax 即然有 softmax&#xff0c;那必然有 hardmax&#xff0c;不然怎么能称为 soft &#xff1f; 所谓 hardmax 其实就是 max&#xff0c;比如有数组&#xff1a;[3,2,4,5,1,7,9]&#xff0c;hardmax 就是找最大值&#xff0c;这里的 hardmax 是 &#xff1a;…

【Go】Go语言基础内容

变量声明&#xff1a; 变量声明&#xff1a;在Go中&#xff0c;变量必须先声明然后再使用。声明变量使用 var 关键字&#xff0c;后面跟着变量名和类型&#xff0c;如下所示&#xff1a; var age int这行代码声明了一个名为 age 的整数变量。 变量初始化&#xff1a;您可以在声…