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

7.26 Qt

用QT制作一个登陆界面

运行代码

login.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>                   //信息调试类,用于输出
#include <QIcon>                    //图标类头文件
#include <QPushButton>              //按钮类头文件
#include <QLineEdit>                //行编辑器头文件
#include <QLabel>                   //标签头文件class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();//使用无参构造标签QLabel *label1=new QLabel;          //背景标签QLabel *label2=new QLabel;          //用户文本框标签QLabel *label3=new QLabel;          //密码文本框标签QLabel *label4=new QLabel;          //超链接标签QLineEdit *edit1=new QLineEdit;     //用户行编辑器QLineEdit *edit2=new QLineEdit;     //密码行编辑器QPushButton *btn1=new QPushButton;  //登陆按钮QPushButton *btn2=new QPushButton;  //退出按钮signals:void  registerSignal();   //自定义返回信号,用来发送给父窗口public slots:void registerSlot();};
#endif // WIDGET_H

register.h

#ifndef REGISTER_H
#define REGISTER_H#include <QWidget>
#include <QDebug>                   //信息调试类,用于输出
#include <QIcon>                    //图标类头文件
#include <QPushButton>              //按钮类头文件
#include <QLineEdit>                //行编辑器头文件
#include <QLabel>                   //标签头文件namespace Ui {
class Register;
}class Register : public QWidget
{Q_OBJECTpublic:explicit Register(QWidget *parent = nullptr);~Register();QLabel *label1=new QLabel;          //用户名标签QLabel *label2=new QLabel;          //密码标签QLabel *label3=new QLabel;          //确认密码标签QLabel *label4=new QLabel;          //邮箱标签QLineEdit *edit1=new QLineEdit;     //用户名行编辑器QLineEdit *edit2=new QLineEdit;     //密码行编辑器QLineEdit *edit3=new QLineEdit;     //确认密码行编辑器QLineEdit *edit4=new QLineEdit;     //邮箱行编辑器QPushButton *btn1=new QPushButton;  //提交按钮QPushButton *btn2=new QPushButton;  //刷新按钮private:Ui::Register *ui;public slots:void sendSignal();    //用来发送返回信号
};#endif // REGISTER_H

main.cpp

#include "login.h"
#include "register.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Register r;  //实例化第二个界面//连接两个界面的信号与槽QObject::connect(&w,&Widget::registerSignal,&r,&Register::sendSignal);return a.exec();
}

login.cpp

#include "login.h"Widget::Widget(QWidget *parent): QWidget(parent)
{//1.固定当前界面的尺寸this->setFixedSize(800,600);           //调用函数设置宽和高//2.窗口标题的设置this->setWindowTitle("Blog");//3.设置窗口图标this->setWindowIcon(QIcon("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\blog.jfif"));//4.设置背景色,可以使用qss代码完成样式表this->setStyleSheet("background-color:lightyellow;");//5.设置窗口透明度this->setWindowOpacity(1.0);//设置标签//利用标签设置背景label1->setParent(this);label1->resize(800,300);label1->setPixmap(QPixmap("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\background.jpg"));  //设置图片标签label1->setScaledContents(true);   //设置内容自适应//利用标签设置 用户和密码//用户文本框标签label2->setParent(this);label2->resize(40,40);label2->move(200,350);label2->setPixmap(QPixmap("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\login.png"));  //设置图片标签label2->setScaledContents(true);   //设置内容自适应//密码文本框标签label3->setParent(this);label3->resize(40,40);label3->move(200,450);label3->setPixmap(QPixmap("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\pwd.png"));  //设置图片标签label3->setScaledContents(true);   //设置内容自适应//超链接标签label4->setParent(this);label4->resize(150,40);label4->move(150,545);label4->setText("<h3><style> a{text-decoration:none;color:lightgrey;}</style><a href=\"https:www.baidu.com\">百度一下</a></h3>");  //加\"是转义  <h1></h1>可有可无label4->setScaledContents(true);   //设置内容自适应label4->setOpenExternalLinks(true);  //设置点击连接自动打开 (跳转到浏览器)//用户行编辑器edit1->setParent(this);          //设置父组件edit1->resize(250,40);           //重新设置尺寸edit1->move(270,350);            //移动位置edit1->setPlaceholderText("username");//密码行编辑器edit2->setParent(this);edit2->resize(edit1->size());edit2->move(270,450);edit2->setEchoMode(QLineEdit::Password);     //设置密文模式edit2->setPlaceholderText("password");      //设置占位符//登陆按钮btn1->setParent(this);   //把当前界面当成父组件btn1->setText("Login");  //设置按钮上的文本内容btn1->resize(100,50);btn1->move(240,530);     //移动按钮的位置btn1->setStyleSheet("background-color:khaki;");  //设置背景色btn1->setIcon(QIcon("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\login_1.png"));   //设置按钮图标connect(btn1, SIGNAL(clicked()), this, SLOT(registerSlot()));//退出按钮btn2->setParent(this);   //把当前界面当成父组件btn2->setText("Exit");  //设置按钮上的文本内容btn2->resize(btn1->size());btn2->move(480,530);     //移动按钮的位置btn2->setStyleSheet("background-color:khaki;");  //设置背景色btn2->setIcon(QIcon("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\exit.png"));   //设置按钮图标
}Widget::~Widget()
{
}void Widget::registerSlot()
{emit registerSignal();
}

register.cpp

#include "register.h"
#include "ui_register.h"Register::Register(QWidget *parent) :QWidget(parent),ui(new Ui::Register)
{ui->setupUi(this);//1.固定当前界面的尺寸this->setFixedSize(800,600);           //调用函数设置宽和高//2.窗口标题的设置this->setWindowTitle("Blog");//3.设置窗口图标this->setWindowIcon(QIcon("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\blog.jfif"));//4.设置背景色,可以使用qss代码完成样式表this->setStyleSheet("background-color:lightyellow;");//5.设置窗口透明度this->setWindowOpacity(1.0);//用户名文本框标签label1->setParent(this);label1->resize(100,50);label1->move(200,100);label1->setText("Username");label1->setScaledContents(true);   //设置内容自适应//用户名文本框标签label2->setParent(this);label2->resize(100,50);label2->move(200,200);label2->setText("Password");label2->setScaledContents(true);   //设置内容自适应//重新确认文本框标签label3->setParent(this);label3->resize(100,50);label3->move(200,300);label3->setText("Reconfirm");label3->setScaledContents(true);   //设置内容自适应//邮箱文本框标签label4->setParent(this);label4->resize(100,50);label4->move(200,400);label4->setText("E-mail");label4->setScaledContents(true);   //设置内容自适应//用户名行编辑器edit1->setParent(this);          //设置父组件edit1->resize(250,40);           //重新设置尺寸edit1->move(300,100);            //移动位置edit1->setPlaceholderText("Username");//密码行编辑器edit2->setParent(this);          //设置父组件edit2->resize(250,40);           //重新设置尺寸edit2->move(300,200);            //移动位置edit2->setEchoMode(QLineEdit::Password);     //设置密文模式edit2->setPlaceholderText("Password");//用户名行编辑器edit3->setParent(this);          //设置父组件edit3->resize(250,40);           //重新设置尺寸edit3->move(300,300);            //移动位置edit3->setEchoMode(QLineEdit::Password);     //设置密文模式edit3->setPlaceholderText("Reenter");//用户名行编辑器edit4->setParent(this);          //设置父组件edit4->resize(250,40);           //重新设置尺寸edit4->move(300,400);            //移动位置edit4->setPlaceholderText("E-mail");//提交按钮btn1->setParent(this);   //把当前界面当成父组件btn1->setText("Submit");  //设置按钮上的文本内容btn1->resize(100,50);btn1->move(240,500);     //移动按钮的位置btn1->setStyleSheet("background-color:khaki;");  //设置背景色//刷新按钮btn2->setParent(this);   //把当前界面当成父组件btn2->setText("Restart");  //设置按钮上的文本内容btn2->resize(100,50);btn2->move(480,500);     //移动按钮的位置btn2->setStyleSheet("background-color:lightgrey;");  //设置背景色}Register::~Register()
{delete ui;
}void Register::sendSignal()
{this->show();
}

界面展示

主界面

跳转界面

思维导图

 

 

 

http://www.lryc.cn/news/95626.html

相关文章:

  • 【MySQL】库和表的操作
  • (五)RabbitMQ-进阶 死信队列、延迟队列、防丢失机制
  • windows下面的python配置
  • vue3中 状态管理pinia得使用
  • 如何使用 After Effects 导出摄像机跟踪数据到 3ds Max
  • 【iOS】懒加载
  • 《脱离“一支笔、一双手、一道力扣”困境的秘诀》:突破LeetCode难题的五个关键步骤
  • 基于jeecg-boot的任务甘特图显示
  • docker export,import后无法运行,如java命令找不到,运行后容器内编码有问题
  • Web3教程| 什么是地址监控?如何使用地址监控追踪黑客地址?
  • flask结合mysql实现用户的添加和获取
  • 阿里云服务器配置 内存,cpu等等
  • PHP注册、登陆、6套主页-带Thinkphp目录解析-【强撸项目】
  • android Activity设置背景为半透明的时候会显示上一个activity的内容
  • Linux 网络收包流程
  • flex: 0 0 273px的意思
  • helm部署rabbitmq
  • Java版Spring Cloud+Spring Boot+Mybatis+uniapp知识付费平台讲解
  • 编程之舞:流程控制乐章
  • ChatGPT是否能够进行情感融合和语气调整?
  • C++--动态规划路径问题
  • 从实践彻底掌握MySQL的主从复制
  • 机器学习深度学习——线性回归的基本元素
  • K8S初级入门系列之八-网络
  • 分段@Transactional 坑及失效问题
  • 25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序)
  • 点云拟合球体
  • 基于动态规划(DP)算法的增程式EV能量管理策略研究(MATLAB编程)
  • 前端知识点视频补充
  • python多线程—终止子线程