当前位置: 首页 > 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();
}

界面展示

主界面

跳转界面

思维导图

 

 

 

相关文章:

7.26 Qt

用QT制作一个登陆界面 运行代码 login.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> //信息调试类&#xff0c;用于输出 #include <QIcon> //图标类头文件 #include <QPushButton&…...

【MySQL】库和表的操作

目录 一、库的操作 1.1创建数据库 1.2创建数据库案例 1.3字符集和校验规则 &#xff08;1&#xff09;查看系统默认字符集以及校验规则 &#xff08;2&#xff09;查看数据库支持的字符集 &#xff08;3&#xff09;查看数据库支持的字符集校验规则 &#xff08;4&…...

(五)RabbitMQ-进阶 死信队列、延迟队列、防丢失机制

Lison <dreamlison163.com>, v1.0.0, 2023.06.23 RabbitMQ-进阶 死信队列、延迟队列、防丢失机制 文章目录 RabbitMQ-进阶 死信队列、延迟队列、防丢失机制死信队列延迟队列延迟队列介绍**延迟队列_死信队列_的实现**延迟队列_插件实现下载插件RabbitMQ 配置类RabbitMQ …...

windows下面的python配置

安装包选择exe后缀的 链接&#xff1a;https://pan.baidu.com/s/1sTzQdHMqI4KZwyJHl79Q3w 提取码&#xff1a;1111 PIP安装脚本 python版本pip安装脚本下载地址n3.6https://bootstrap.pypa.io/pip/3.6/get-pip.py3.7及以上https://bootstrap.pypa.io/get-pip.py 控制面板新…...

vue3中 状态管理pinia得使用

在做项目中 vue2改造vue3项目时的vuex 发生得一些变化 vue3项目中 先看下 stores.jsimport { defineStore } from pinia 引入方法注册方法 import { getListFieldLevel } from ..api/index.jsexport const useScreenStore defineStore(screen, {state: () > ({fieldList:…...

如何使用 After Effects 导出摄像机跟踪数据到 3ds Max

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 在本教程中&#xff0c;我将展示如何在After Effects中跟踪实景场景&#xff0c;然后将相机数据导出到3ds Max。 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合…...

【iOS】懒加载

文章目录 前言一、懒加载的意义二、懒加载的原理三、懒加载优缺点 前言 iOS懒加载&#xff08;Lazy Loading&#xff09;是一种延迟加载的技术&#xff0c;它允许在需要的时候才初始化对象或执行某些操作&#xff0c;而不是在对象创建的时候立即执行。懒加载主要用于优化应用程…...

《脱离“一支笔、一双手、一道力扣”困境的秘诀》:突破LeetCode难题的五个关键步骤

导言&#xff1a; 在解决LeetCode等编程题时&#xff0c;不少人会陷入“一支笔、一双手、一道力扣&#xff08;LeetCode&#xff09;做一宿”的困境。尽管已经掌握了相关知识和算法&#xff0c;但在实际挑战中却无从下手。本文将分享如何摆脱这一困境的秘诀&#xff0c;让你在面…...

基于jeecg-boot的任务甘特图显示

更多功能看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/nbcio-boot 前端代码&#xff1a;https://gitee.com/nbacheng/nbcio-vue.git 在线演示&#xff08;包括H5&#xff09; &#xff1a; http://122.227.135.243:9888 基于项目的任务显…...

docker export,import后无法运行,如java命令找不到,运行后容器内编码有问题

为什么用docker export呢&#xff0c;&#x1f614;~由于客户环境太恶心了&#xff0c;测试一次更是麻烦&#xff0c;所以什么都得在本地调试完成&#xff0c;争取每次测试上线一次通过才行&#xff0c;说多了都是泪。 由于踩坑几次了&#xff0c;每次都忘记&#xff0c;且每次…...

Web3教程| 什么是地址监控?如何使用地址监控追踪黑客地址?

在当今Web3世界里&#xff0c;保护个人资产安全至关重要。据报道在2023年上半年&#xff0c;Web3领域因黑客攻击事件造成的损失高达4.794亿美元。 此外&#xff0c;10多个公链遭受黑客攻击&#xff0c;其中以太坊链遭受的损失最多&#xff0c;约为2.87亿美元。这些黑客的存在迫…...

flask结合mysql实现用户的添加和获取

1、数据库准备 已经安装好数据库&#xff0c;并且创建数据库和表 create database unicom DEFAULT CHARSET utf8 COLLATE utf8_general_ci; CREATE TABLE admin( id int not null auto_increment primary key, username VARCHAR(16) not null, password VARCHAR(64) not null…...

阿里云服务器配置 内存,cpu等等

实例升配&#xff0c;https://help.aliyun.com/document_detail/25438.html?spma2c4g.11174283.6.780.2cbf4c070oeino#title-a5t-gg2-...

PHP注册、登陆、6套主页-带Thinkphp目录解析-【强撸项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图主页注册&#xff0c;登陆 phpStudy 设置导数据库项目目录如图&#xff1a;代码部分&#xff1a;控制器前台的首页 其它配套页面展示直接给第二套方案的页面吧第三套…...

android Activity设置背景为半透明的时候会显示上一个activity的内容

在弹出PopupWindow时将当前Activity设置成了半透明: WindowManager.LayoutParams lp = this.activity.getWindow().getAttributes();lp.alpha = 0.5f; //0.0-1.0this...

Linux 网络收包流程

哈喽大家好&#xff0c;我是咸鱼 我们在跟别人网上聊天的时候&#xff0c;有没有想过你发送的信息是怎么传到对方的电脑上的 又或者我们在上网冲浪的时候&#xff0c;有没有想过 HTML 页面是怎么显示在我们的电脑屏幕上的 无论是我们跟别人聊天还是上网冲浪&#xff0c;其实…...

flex: 0 0 273px的意思

flex: 0 0 273px; 是一条CSS属性&#xff0c;用于设置flexible box布局&#xff08;flexbox&#xff09;中的flex子项的灵活性和尺寸。 这条属性包含三个值&#xff0c;分别是&#xff1a; flex-grow: 表示弹性增长因子&#xff0c;指定当有多余空间时&#xff0c;子项能够增长…...

helm部署rabbitmq

1.添加rabbitmq仓库并下载包 helm repo add bitnami https://charts.bitnami.com/bitnami helm pull bitnami/rabbitmq --version 10.1.4 tar -zxvf rabbitmq-10.1.4.tgz mv values.yaml values.yaml.back grep -v "#" values.yaml.back > values.yaml2.helm部署…...

Java版Spring Cloud+Spring Boot+Mybatis+uniapp知识付费平台讲解

提供私有化部署&#xff0c;免费售后&#xff0c;专业技术指导&#xff0c;支持PC、APP、H5、小程序多终端同步&#xff0c;支持二次开发定制&#xff0c;源码交付。 Java版知识付费-轻松拥有知识付费平台 多种直播形式&#xff0c;全面满足直播场景需求 公开课、小班课、独…...

编程之舞:流程控制乐章

流程控制语句 1. 复合语句 2. 条件语句2.1 if条件语句2.2 switch多分支语句 3. 循环语句3.1 while循环语句3.2 do...while循环语句3.3 for循环语句 4. 循环控制4.1 break语句4.2 continue语句 5. 实践与练习 1. 复合语句 复合语句是由一对花括号括起来的语句块&#xff0c;可以…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...