【QT学习教程1】制作用户登陆界面
目录
0. 前言
1. 登录界面的创建和设计
2. 子界面的创建与设计
3. 子界面的.cpp文件和.h文件的编写
4. 修改Main函数
5. 编译测试结果
0. 前言
本文代码部分参考这篇博文。
1. 登录界面的创建和设计
创建过程在前面博客中已经写过,这里贴出关键步骤图。
首先,关于基类的选择问题,参考这篇博文。此项目中,选择QDialog作为基类。
VS2019的项目中如下图所示。
双击进入QtLogin.ui(若进入后闪退,修改打开方式,具体操作参考我前面的博客),制作成如下图所示的界面,并在右侧明细栏内修改名称。
由于“登录“按键是启动另一个界面,所以需要自己定义槽函数;而”退出“按键是不需要的,因此先设置好”退出“按键的实现。在下侧”信号与槽“一栏中添加如下图所示的功能,它的意思是:当Exit_Btn按键被点击(clicked)后,QtLoginClass作为接收者,close()函数被调用,于是界面就会关闭。
2. 子界面的创建与设计
右键VS2019的项目 — 添加 — 新建项
选择 Qt — Qt Widget Form File,修改名称为:ControlWindow.ui
此时会自动弹出该ui文件等待编辑。首先,修改该ui界面的名称为:ControlWindow
其次,由于这里只是实现点击登录后显示该子界面,所以子界面的设计不必太复杂,只添加布局中的Label即可,如下图所示。
3. 子界面的.cpp文件和.h文件的编写
在前文中,只是创建了子界面的ui文件,并没有创建子界面的.cpp文件和.h文件,所以这里需要手动创建。同样地,右键Qt项目 — 添加 — 新建项(直接改文件名,修改后缀即可)。此时VS2019项目中明细栏有如下文件:
第一,在ControlWindow.h文件内添加内容:
#pragma once#include <QtWidgets>
#include "ui_ControlWindow.h"class ControlWindow : public QWidget
{Q_OBJECTpublic:ControlWindow(QWidget* parent = Q_NULLPTR);private:Ui::ControlWindow ui;
};
第二,在ControlWindow.cpp文件内添加:
#include "ControlWindow.h"ControlWindow::ControlWindow(QWidget* parent): QWidget(parent)
{ui.setupUi(this);
}
第三,在QtLogin.h中修改:
#pragma once#include <QtWidgets/QDialog>
#include "ui_Login.h"class Login : public QDialog
{Q_OBJECTpublic:Login(QWidget *parent = Q_NULLPTR);private:Ui::LoginClass ui;public slots:void on_clicked();
};
第四:在QtLogin.cpp中修改:
#include "Login.h"
#include "QMessageBox"Login::Login(QWidget *parent): QDialog(parent)
{ui.setupUi(this);ui.Passport_Edit->setEchoMode(QLineEdit::Password); //让密码变成星号,无法显示QObject::connect(ui.Sign_in_Btn, SIGNAL(clicked()), this, SLOT(on_clicked()));
}void Login::on_clicked() {if (ui.User_Edit->text() == tr("qt") && ui.Passport_Edit->text() == tr("123456")){accept();}else{QMessageBox::warning(this, tr("warning!"), tr("username or passport is wrong!"), QMessageBox::Yes);}
}
4. 修改Main函数
将main函数修改为:
#include "QtLogin.h"
#include <QtWidgets/QApplication>
#include "ControlWindow.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);QtLogin w;ControlWindow cw;if (w.exec() == QDialog::Accepted) {cw.show();return a.exec();}
}
上述代码的解释:
首先是w.exec()函数,这个函数代表循环等待,也就是等待用户的操作。
其次是QDialog::Accepted,表明只要对话框的按键被按下,就会发出accepted信号,从而if语句成立,执行if语句内的程序。
5. 编译测试结果
希望此部分是你自己测试出来的,略。
【QT学习教程1】制作用户登陆界面相关推荐
- 界面开发(2)--- 使用PyQt5制作用户登陆界面
使用PyQt5制作用户登陆界面 上篇文章已经介绍了如何配置PyQt5环境,这篇文章在此基础上展开,主要记录一下如何使用 PyQt5 制作用户登陆界面,并对一些基础操作进行介绍. 下面是具体步骤,一起来 ...
- Java学习笔记之三——Java用户登陆界面
好久没有总结这个月的学习了,先唠叨几句,这个月工作烂的一塌糊涂.跟老板吵架,然后辞职.今天是递交辞职申请的倒数第三天. Java用户登陆这块,主要还是学到了新的类: 1,边界布局:BorderLayo ...
- 学籍管理系统制作教程第二天之 用户登陆界面(三层)
最近工作比较忙,所以没有连续的来写,今天有空了继续前面的 今天做用户登陆界面,使用三层架构,那么我就需要先理解什么是三层和为什么使用三层. 第一:什么是三层,UI表现层也就是界面,放各种界面如登陆界面 ...
- Java用户登陆界面例子 代码
转自http://www.cnblogs.com/liwustore/archive/2013/01/01/2841492.html 好久没有总结这个月的学习了,先唠叨几句,这个月工作烂的一塌糊涂.跟 ...
- 利用JAVA手机登录页面_Java用户登陆界面例子 代码
2,流式布局:FlowLayout.布局方式为从左到右,从上到下.是JPanel(轻量级容器)的默认面板布局. 3,网格布局:GridLayout.布局方式为行和列组成的网络.布局方法:setLayo ...
- 【PYTHON】tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失...
tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失 tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失 1 if que ...
- JAVA swing之用户登陆界面
一:本文主要介绍用java画图写一个用户登录界面,其中包括的功能效果有: 1:新用户的创建 2:将用户信息保存在txt文件,文件路径设置为D:\\map\\Secret1.txt,路径可以自行修改 3 ...
- springboot整合mybaits-plusmybaits实现用户登陆界面(适合入门)+唯美界面
springboot整合mybaits-plus/mybaits实现用户登陆界面(一步步解析)+唯美界面 文章目录 springboot整合mybaits-plus/mybaits实现用户登陆界面(一 ...
- jquery实现登录成功界面_jquery实现用户登陆界面(示例讲解)
实例如下所示: var cnresu = false; $(function(){ $("input[name='uname']").blur(function(){//blur从 ...
- Ubuntu 18.04 用户登陆界面死循环 NVIDIA 驱动导致用户登陆界面死循环
Ubuntu 18.04 用户登陆界面死循环 1. 卸载原来NVIDIA 所有驱动 2. 重新安装驱动 buntu 18.04 用户登陆界面循环输入密码 Ubuntu 安装 NVIDIA 驱动导致用户 ...
最新文章
- java 省市区数据data
- Python Django 配置URL的方式(url传参方式)
- HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...
- 收集42款经典的Chrome 插件
- 计算机防火墙不能更改,win7系统更新防火墙设置不能更改的解决方法
- 数据库-MySQL-数据库设计-表的关联
- 谈谈出入React框架踩过的坑
- 在线扒站复活版可预览网站html源码
- 空间解析几何基础总结
- 重磅:阿里开启大规模校招,传已启动保密项目
- 从黑产情报角度看风控对抗的变化
- 微信公众平台开发者模式(1)JAVA版接入
- Java、JSP实验室预约管理系统
- Handler: Activity 之间通过 Handler 通信
- DO、PO、VO、DTO、BO、POJO概念
- 05、app测试工具汇总
- 紧急救援 dijkstra
- eclipse 提示框颜色
- mysql运维-sleep线程过多_MySQL sleep过多解决方法
- 养生程序员之生活小窍门
热门文章
- Ubuntu 20.04 环境下 PyCharm 输入框不跟随光标问题
- 2021年国家HW行动部分0day漏洞复现
- 用HTML绘制三线表,CSS制作三线表 | 学步园
- Import REC修复的时候找不到被调试程序进程
- 初中计算机考试操作题免费,初中信息技术考excel操作题.doc
- win10关闭windows聚焦_Windows聚焦功能无法使用怎么办_win10锁屏聚焦功能不更新教程 - 系统家园...
- xpose框架使用android studio
- 题库APP源码 在线题库源码 题库系统源码
- HMM隐马尔可夫模型-通俗易懂
- iOS面试题(多线程篇)