QT qq登陆界面设计

使用C++结合Qt设计的类似QQ的登录界面,以Ui以及代码结合的方式实现,实现了账号注册、号密对比等功能。先看看效果图:

登录界面:

注册界面:

一共有两个窗口,通过槽函数绑定按钮来显示弹窗(注册界面)的显示,右侧的小眼睛图标功能是显示/隐藏密码。

先介绍一下设计过程以及用到的一些主要函数和值得注意的地方:

1.在创建工程的时候注意选择带有ui界面的文件

2.ui界面控件:

注意点击相应控件在右下角可修改例如尺寸等参数,可以根据个人喜好确定mainwindow窗口大小,如果对尺寸比较敏感可以自己设置好每个控件的尺寸,各个控件之间的间隔可以用弹簧隔开,两种类型的弹簧在左边都可以找到,同样可设置弹簧的长度:

值得注意的地方还有:

点击任意控件然后按住ctrl选择其他控件即可设置布局方式三种布局都可以自己尝试。接下来布局好后来看看值得注意的代码。

mainwindow.cpp

MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{this->setWindowTitle("登录界面");  //设置窗口标题ui->setupUi(this);ui->lineEdit_2->setPlaceholderText("请输入用户名"); //linneedit 提示文字ui->lineEdit_3->setPlaceholderText("请输入密码");/*QMovie *movie=new QMovie(":/ress/动图.gif");//设置动图,如果想要动图效果这个步骤不可缺少ui->label_2->setMovie(movie);                //需要添加Qmovie头文件movie->setScaledSize(QSize(100,40));movie->start();*/}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()  //这里用了文件操作来实现注册账号功能,因为对比账号密码需要跨文
{                                         //件。也可以使用数据库操作QFile f("D:\\name0.txt");             //创建两个文件分别用来保存账号和密码if(!f.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug() << ("打开文件失败");}QTextStream txtInput(&f);            //这是单击登录按钮的槽函数,如果函数内的条件都满足就会产生QString lineStr;                    //下一个窗口while(!txtInput.atEnd()){lineStr = txtInput.readLine();//qDebug() << (lineStr);}f.close();QFile f0("D:\\passwd.txt");            //保存密码的文件if(!f0.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug() << ("打开文件失败");}QTextStream txtInput0(&f0);QString lineStr0;while(!txtInput0.atEnd()){lineStr0 = txtInput0.readLine();//qDebug() << (lineStr);}f0.close();if(ui->lineEdit_2->text()==lineStr && ui->lineEdit_3->text()==lineStr0){denglu * denglu1=new denglu(this);denglu1->show();}
}void MainWindow::on_lineEdit_3_cursorPositionChanged(int arg1, int arg2)
{//ui->lineEdit_3->setPlaceholderText("请输入密码");
}void MainWindow::on_checkBox_toggled(bool checked)
{if(checked){ui->lineEdit_3->setEchoMode(QLineEdit::Normal);}else{ui->lineEdit_3->setEchoMode(QLineEdit::Password);}}void MainWindow::on_pushButton_2_clicked()
{this->close();}

要产生另一个窗口(注册界面)就需要再重写创建一个ui界面,步骤如下:

然后再第一个ui界面中选择注册按钮转到槽,这样单击后就会出现另一个窗口

void MainWindow::on_pushButton_3_clicked()    //注册账号按钮槽函数,单机后会产生注册界面
{zhuce * winzhuce=new zhuce(this);    //zhuce是创建时自定义的类winzhuce->show();//this->hide();
}

密码模式(输入密码显示”***“),点击lineedit后设置即可,normal是正常显示,可根据需求设置。

zhuce.cpp:

zhuce::zhuce(QWidget *parent) :QMainWindow(parent),ui(new Ui::zhuce)
{ui->setupUi(this);this->setWindowTitle("注册界面");ui->pushButton->setIcon(QIcon(":/ress/zhengyan.png"));ui->pushButton->setIconSize(QSize(60,30));}zhuce::~zhuce()
{delete ui;
}void zhuce::on_pushButton_2_windowIconChanged(const QIcon &icon)
{}void zhuce::on_pushButton_clicked()
{switch (flag) {case 0:ui->pushButton->setIcon(QIcon(":/ress/eye.png"));ui->pushButton->setIconSize(QSize(60,30));ui->lineEdit_3->setEchoMode(QLineEdit::Normal);flag++;break;case 1:ui->pushButton->setIcon(QIcon(":/ress/eyes.png"));ui->pushButton->setIconSize(QSize(60,30));ui->lineEdit_3->setEchoMode(QLineEdit::Password);flag--;break;}
}void zhuce::on_pushButton_3_clicked()
{QString temp=ui->lineEdit_4->text();QString temp0=ui->lineEdit_3->text();//创建 QFile 对象,同时指定要操作的文件QFile file("D:/name0.txt");//对文件进行写操作if(!file.open(QIODevice::WriteOnly|QIODevice::Text|QIODevice::Truncate )){//qDebug()<<"文件打开失败";}file.write(temp.toUtf8());//关闭文件file.close();if(ui->lineEdit_5->text()!=temp0){QMessageBox::information(this, tr("注册失败"), tr("两次密码不一致!"));}if(ui->lineEdit_5->text()==ui->lineEdit_3->text()){QFile file1("D:/passwd.txt");if(!file1.open(QIODevice::WriteOnly|QIODevice::Text|QIODevice::Truncate )){//qDebug()<<"文件打开失败";}//向文件中写入两行字符串file1.write(temp0.toUtf8());file1.close();QMessageBox::information(this, tr("注册成功"), tr("欢迎使用智能家居系统!"));}}

需要注意的是这个地方可以实现类似显示/隐藏密码的功能:(需要定义一个全局变量flag)

void zhuce::on_pushButton_clicked()
{switch (flag) {case 0:ui->pushButton->setIcon(QIcon(":/ress/eye.png"));ui->pushButton->setIconSize(QSize(60,30));ui->lineEdit_3->setEchoMode(QLineEdit::Normal);flag++;break;case 1:ui->pushButton->setIcon(QIcon(":/ress/eyes.png"));ui->pushButton->setIconSize(QSize(60,30));ui->lineEdit_3->setEchoMode(QLineEdit::Password);flag--;break;}
}

另外添加图片步骤:同样的右键添加新文件,选择resouse file,添加前缀(一般/即可),添加文件,选择图片点击左边的小锤按钮即可,在UI中右键控件改变样式表,选择background/color等弹出来的文件选择对应图片即可。

剩下的可能有漏掉的地方不过相信大家稍动脑筋也一定可也解决的啦!

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

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

相关文章

QT学习之QQ聊天案例

1、实现功能 本程序模拟实现QQ群聊功能&#xff0c;采用UDP通信方式&#xff0c;可以设置字体&#xff0c;保存聊天记录等&#xff0c;实时显示上线离开人数以及具体人员。可视为简化版的腾讯QQ。目前只有群聊&#xff0c;未实现一对一单独聊天。 完整源代码见&#xff1a;ht…

【教学类-36-01】Midjounery生成的四张图片切片成四张小图

作品展示&#xff1a; 把一张正方形图片的四个等大小图切割成四张图片 背景需求 最近在学习ChatGPT的绘画&#xff08;midjounery AI艺术&#xff09; 我想给中班孩子找卡通动物图片&#xff08;黑白线条&#xff09;&#xff0c;打印下来&#xff0c;孩子们练习描边、涂色…

chatgpt赋能python:Python校验身份证号码真伪

Python校验身份证号码真伪 身份证号码是我们日常生活中非常重要的证件&#xff0c;但也有一些人从事非法活动&#xff0c;对身份证号码进行伪造或者篡改。为了保护公民的合法权益&#xff0c;我们需要使用技术手段来校验身份证号码真伪。而Python作为一种广泛应用于数据处理和…

【科普级别:刚出炉的ChatGPT三连问】

科普级别&#xff1a;刚出炉的ChatGPT三连问 前言【ChatGPT是什么&#xff1f;对我们的生活有什么影响&#xff1f;】【中国为什么不能使用ChatGPT&#xff1f;美国想让中国用户使用吗&#xff1f;】【通义千问、文心一言、ChatGPT你更看好哪一个&#xff1f;】 前言 有些人连C…

又一个国内类ChatGPT模型?【秘塔科技上线自研LLM大模型「对话写作猫」】

又一个国内类ChatGPT模型&#xff1f;【秘塔科技上线自研LLM大模型「对话写作猫」】 &#xff08;马上被打脸 ~ ~&#xff09; 一直期待中国有没有类ChatGPT产品可以出现。 昨天&#xff0c;2023年2月27日&#xff0c;秘塔科技上线了自研LLM大模型「对话写作猫」&#xff0c;…

小白入门区块链(通俗易懂)

区块链基础入门 什么是区块链 科技层面解释 数学&#xff0c;密码学&#xff0c;互联网&#xff0c;计算机编程官方解释 区块链是一个分布式的共享账本和数据库&#xff0c;具有去中心化&#xff0c;不可篡改&#xff0c;全程留痕&#xff0c;可以追溯&#xff0c;集体维护&am…

2023年加密行业会更难吗?欧科云链研究院“七大趋势预测”

回望2022&#xff0c;加密行业遭遇了种种不可控因素而导致的艰难险阻&#xff0c;也在变革与发展中孕育着生机与活力。 这一年&#xff0c;我们亲眼目睹了Luna暴雷&#xff0c;三箭资本、FTX这些曾经被认为“大而不倒”的机构接连倒下&#xff0c;市场信心严重受挫&#xff1b…

​别急着骂百度,来看看大模型到底怎么用

文&#xff5c;光锥智能&#xff0c;作者&#xff5c;周文斌&#xff0c;编辑&#xff5c;王一粟 GPT-4惊艳亮相后&#xff0c;压力来到百度这边。 上台后的李彦宏和百度CTO王海峰都略显紧张&#xff0c;这在多年百度相关活动中还是非常少见。李彦宏坦言&#xff0c;“文心一言…

Node.js 高级编程之 Stream(我是跟 ChatGPT 学会的)

前言 在做 SSR Stream Render 的时候遇到了 Node.js 的 Stream&#xff0c;但是对其总是一知半解。正好最近 ChatGPT 很火&#xff0c;找他学一学吧&#xff0c;没想到真的把我教会了。PS&#xff1a;文末有跟 ChatGPT 的精彩对话&#xff08;请忽略我稀烂的英语&#xff09;。…

《不想放水》

原创&#xff1a;刘教链 * * * 由刘教链和ChatGPT共同填词。原曲&#xff1a;S.H.E.《不想长大》。 为什么就是找不到放水的证据呀 为什么救助的银行都不愿退市啊 我并不希望他拥有比特币和黄金 我惊讶的是假话竟然会变成谎话 为什么美元印钞机要转的那么快 为什么通胀和失业率…

存储器介绍

文章目录 存储系统基本概念存储器的层次存储器的分类存储器的性能指标 主存储器半导体元件的原理存储芯片的基本原理寻址 DRAM和SRAMDRAM的刷新DRAM的地址复用 只读存储器ROM主存储器和CPU的连接位扩展字扩展字位同时扩展补充 双端口RAM和多模块存储器双端口RAM解决多核CPU访存…

OpenAI文档翻译——在不通的场景下如何更好的设计ChatGPT提示词

概述 OpenAI可以被广泛的应用于各种任务&#xff0c;他为各种模型提供使用简单而功能强大的API。你可以输入一些文本作为提示词&#xff0c;OpenAI则会生成对应的提示词补全&#xff0c;在使用过程中这就是会话形式以及能够记住上下文的体现。探索如何生成提示词的最好方法就是…

如何使用ChatGPT 写官方声明?

上海车展宝马Mini展台被指区别对待中外访客&#xff0c;向外国访客送冰淇淋&#xff0c;中国访客索要时则说“没有”&#xff0c;此事引发争议。 对此&#xff0c;宝马官方也发布了官方致歉声明&#xff0c;网友看到声明后&#xff0c;纷纷发布自己的看法&#xff0c;有网友还…

独家专访:OpenAI 的 Sam Altman 谈 ChatGPT 以及通用人工智能如何“打破资本主义”

来源: AI前线 作为 OpenAI 的首席执行官&#xff0c;Sam Altman 领导的这家初创公司是正在快速增长的生成式 AI 行业中最热门且最受关注的一家。在 1 月中旬参观了 OpenAI 的旧金山办事处后&#xff0c;福布斯采访了这位最近不太愿意在媒体上抛头露面的投资者和企业家&#x…

ChatGPT is not all you need,一文看尽SOTA生成式AI模型:6大公司9大类别21个模型全回顾(三)

文章目录 ChatGPT is not all you need&#xff0c;一文看尽SOTA生成式AI模型&#xff1a;6大公司9大类别21个模型全回顾&#xff08;三&#xff09;Text-to-Text 模型ChatGPTLaMDAPEERMeta AI Speech from Brain Text-to-Code 模型CodexAlphacode Text-to-Science 模型Galacti…

千万级入口服务[Gateway]框架设计(三:分层模式)

本文将以技术调研模式编写&#xff0c;非技术同学可跳过。 文章目录 背景分层分发Handle分发hook分发并发分层 管道ChannelDemo 实现 小结 附录 背景 基于组件(插件)模式设计构建的入口服务实现中&#xff0c;使用 Go 原生包 plugin 的时候&#xff0c;会存在功能缺陷问题&am…

ChatGPT配合两款神器,1分钟生成流程图

流程图&#xff0c;工作上再正常不过的一种图形&#xff0c;常见制图方法对比&#xff1a; 传统手动制图&#xff1a;耗时耗力&#xff0c;迁移性差AI 辅助制图&#xff1a;使用自然语言提出需求&#xff0c;零基础快速制图 几款常见的我在用的在线绘图工具推荐&#xff1a; Pr…

面向对象实现游戏聊天中的敏感词屏蔽功能,将敏感词汇用星号***替换

import java.util.Scanner;//新建一个类 public class Replace {// 定义一个字符串String commons;// 建一个替换的方法public void replace() { //控制台输入Scanner sc new Scanner(System.in);// 提示输出&#xff08;为方便功能实现&#xff0c;此处提示内定的敏感词汇&am…

DreamGPT:让ChatGPT活在梦里!利用幻觉来激发创意灵感

本文来源 新智元 编辑&#xff1a;LRS 【新智元导读】语言模型幻觉从bug变feature&#xff01; ChatGPT最为人诟病的缺陷就是「胡编乱造」了&#xff0c;可以一本正经地讲一段林黛玉倒拔垂杨柳的故事。 对于真正想了解「林黛玉」或「倒拔垂杨柳」的人来说&#xff0c;这段回答…

这五个问题一下就看出阿里通义千问和ChatGPT的差距了

前言 阿里通义千问申请过了&#xff0c;为了看看达到了什么水平&#xff0c;于是我问题了5个ChatGPT回答过的问题1&#xff0c;这五个问题网上都是没有的&#xff0c;是我自己想出来的。 问题一:小明说今天他吃了一只公鸡蛋&#xff0c;请问小明诚实吗&#xff1f; ChatGPT 这…