目录

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】制作用户登陆界面相关推荐

  1. 界面开发(2)--- 使用PyQt5制作用户登陆界面

    使用PyQt5制作用户登陆界面 上篇文章已经介绍了如何配置PyQt5环境,这篇文章在此基础上展开,主要记录一下如何使用 PyQt5 制作用户登陆界面,并对一些基础操作进行介绍. 下面是具体步骤,一起来 ...

  2. Java学习笔记之三——Java用户登陆界面

    好久没有总结这个月的学习了,先唠叨几句,这个月工作烂的一塌糊涂.跟老板吵架,然后辞职.今天是递交辞职申请的倒数第三天. Java用户登陆这块,主要还是学到了新的类: 1,边界布局:BorderLayo ...

  3. 学籍管理系统制作教程第二天之 用户登陆界面(三层)

    最近工作比较忙,所以没有连续的来写,今天有空了继续前面的 今天做用户登陆界面,使用三层架构,那么我就需要先理解什么是三层和为什么使用三层. 第一:什么是三层,UI表现层也就是界面,放各种界面如登陆界面 ...

  4. Java用户登陆界面例子 代码

    转自http://www.cnblogs.com/liwustore/archive/2013/01/01/2841492.html 好久没有总结这个月的学习了,先唠叨几句,这个月工作烂的一塌糊涂.跟 ...

  5. 利用JAVA手机登录页面_Java用户登陆界面例子 代码

    2,流式布局:FlowLayout.布局方式为从左到右,从上到下.是JPanel(轻量级容器)的默认面板布局. 3,网格布局:GridLayout.布局方式为行和列组成的网络.布局方法:setLayo ...

  6. 【PYTHON】tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失...

    tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失 tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失 1 if que ...

  7. JAVA swing之用户登陆界面

    一:本文主要介绍用java画图写一个用户登录界面,其中包括的功能效果有: 1:新用户的创建 2:将用户信息保存在txt文件,文件路径设置为D:\\map\\Secret1.txt,路径可以自行修改 3 ...

  8. springboot整合mybaits-plusmybaits实现用户登陆界面(适合入门)+唯美界面

    springboot整合mybaits-plus/mybaits实现用户登陆界面(一步步解析)+唯美界面 文章目录 springboot整合mybaits-plus/mybaits实现用户登陆界面(一 ...

  9. jquery实现登录成功界面_jquery实现用户登陆界面(示例讲解)

    实例如下所示: var cnresu = false; $(function(){ $("input[name='uname']").blur(function(){//blur从 ...

  10. Ubuntu 18.04 用户登陆界面死循环 NVIDIA 驱动导致用户登陆界面死循环

    Ubuntu 18.04 用户登陆界面死循环 1. 卸载原来NVIDIA 所有驱动 2. 重新安装驱动 buntu 18.04 用户登陆界面循环输入密码 Ubuntu 安装 NVIDIA 驱动导致用户 ...

最新文章

  1. java 省市区数据data
  2. Python Django 配置URL的方式(url传参方式)
  3. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...
  4. 收集42款经典的Chrome 插件
  5. 计算机防火墙不能更改,win7系统更新防火墙设置不能更改的解决方法
  6. 数据库-MySQL-数据库设计-表的关联
  7. 谈谈出入React框架踩过的坑
  8. 在线扒站复活版可预览网站html源码
  9. 空间解析几何基础总结
  10. 重磅:阿里开启大规模校招,传已启动保密项目
  11. 从黑产情报角度看风控对抗的变化
  12. 微信公众平台开发者模式(1)JAVA版接入
  13. Java、JSP实验室预约管理系统
  14. Handler: Activity 之间通过 Handler 通信
  15. DO、PO、VO、DTO、BO、POJO概念
  16. 05、app测试工具汇总
  17. 紧急救援 dijkstra
  18. eclipse 提示框颜色
  19. mysql运维-sleep线程过多_MySQL sleep过多解决方法
  20. 养生程序员之生活小窍门

热门文章

  1. Ubuntu 20.04 环境下 PyCharm 输入框不跟随光标问题
  2. 2021年国家HW行动部分0day漏洞复现
  3. 用HTML绘制三线表,CSS制作三线表 | 学步园
  4. Import REC修复的时候找不到被调试程序进程
  5. 初中计算机考试操作题免费,初中信息技术考excel操作题.doc
  6. win10关闭windows聚焦_Windows聚焦功能无法使用怎么办_win10锁屏聚焦功能不更新教程 - 系统家园...
  7. xpose框架使用android studio
  8. 题库APP源码 在线题库源码 题库系统源码
  9. HMM隐马尔可夫模型-通俗易懂
  10. iOS面试题(多线程篇)