1. Create Project

从今天开始,我们开始我们的上位机开发大师之路。

首先我们要先创建我们的第一个工程。文件->新建文件或项目或者使用快捷键Ctrl+N。

这里我们选择Application->Qt WidgetsApplication。

下一步之后我们要给我们的项目起一个名字,这里我起名叫做serialport,选择我们的项目路径,需要注意的是项目路径这里不允许有中文,如果有中文项目构建过程中会报错。

下一步选择编译器,由于在昨天的环境搭建中,我只安装了MinGw一种编译环境,所以这里也只有这一个Desktop Qt 5.10.0 MinGW32 bit,如果你在之前的安装过程中还选择了其他编译器的话,这里会显示多个编译器。

下一步,基类我们选择QWidget,类名改为login。原因是因为我想在串口调试助手的基础上添加管理员登陆的安全验证,所以我们以login作为我们的初始界面。(这里我忘记改了-。-||)

创建完成后我们发现Qt自动生成了cpp文件和头文件,到这一步我们的项目初创成功。

2.  创建多窗口

双击Forms文件夹下的ui文件,我们在用户界面上添加我们需要用到的组件。

我要实现的功能是当用户输入正确的口令,点击Log in时,我们这个程序才会跳转到串口工具的界面,点击Cancel直接退出程序。

2.1 Cancel功能

我们从最简单的开始,实现Cancel的关闭功能。

实现关闭功能,不需要敲代码,我们只需要在Signals & Slots Editor手动选择一下就好了。

发送者是Cancel这个pushButton的对象名,信号选择clicked(),接收者选择Widget,槽函数选择close()。这样就实现了Cancel功能。

2.2  Log in功能

我们要实现登陆功能,首先我们要另外创建一个界面(usr),当我们从Login界面输入账号密码,验证正确后,即可进入usr界面操作,所以我们先来看一下创建新界面的步骤。

文件->新建文件或项目

这个类可以帮助我们在创建窗口程序的基础上将cpp文件和头文件一起创建出来。

之后,选择Dialogwithout Buttons,按键什么的我们自己添加就可以了。

然后我们起个名,就叫usr好了。

之后下一步、下一步…就可以完成创建了。

3.  用户验证

下面我们来做用户验证的部分,从现在开始就要开始敲代码了,右键Login按键,选择转到槽,然后选择clicked(),按键事件的函数Qt就为我们自动创建好了。

首先我们要在login.h里创建usr窗口的对象。

#ifndef LOGIN_H
#define LOGIN_H#include <QWidget>
#include "usr.h"namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private slots:void on_pushButton_clicked();private:Ui::Widget *ui;usr *Usr=new usr;};#endif // LOGIN_H

接下来的代码要执行的操作就是验证账号密码,如果正确则跳转usr窗口,如果不正确,发出警告。另外,我们不管平时用QQ还是用微信登陆,密码都是不显示的小黑点,这里我们也设置一下。

#include "login.h"
#include "ui_login.h"
#include "QMessageBox"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);ui->password->setEchoMode(QLineEdit::Password);//当输入密码时,显示为*******
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{
/*this->hide();Usr->show();
*/if(this->ui->usrname->text().trimmed() == tr("admin") &&this->ui->password->text().trimmed()== tr("root"))  //去除lineEdit内的用户名和密码进行校验{//登陆成功后显示对话框this->hide();Usr->show();}else{//用户输入存在错误QMessageBox::warning(this,tr("waring"),tr("your passward is wrong"),QMessageBox::Yes);ui->usrname->clear();  //清空姓名usrnameui->password->clear();  //清空密码passwardui->usrname->setFocus();  //将鼠标重新定位到usrname}
}

我们Ctrl+B构建运行一下

插入栓插入...
解放播放传导系统 准备接续...
探针插入 完毕
神经同调装置在基准范围内
第一次接触...
插入栓注水...
主电源连接完毕...
开始进行第二次接触...
交互界面连接...
思考形态以中文作为基准,进行思维连接...
连接没有异常
同步率为 1000.0000%%
第一锁定器解除...
第二锁定器解除...
移往播放口...

密码正确--->跳转usr窗口

密码错误--->警告

至此,登陆界面完结撒花~

Hello World

#上位机开发大师之路# 管理员登陆模块开发相关推荐

  1. STC15单片机-上位机通过Modbus-RTU协议与开发板通信

    上位机通过Modbus-RTU协议与开发板通信 Modbus协议 Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于 1979年为使用可编程 ...

  2. 微赞php.ini_微赞微擎二开笔记开发手册之模块开发指南(九)

    微赞微擎二开笔记开发手册之模块开发指南(九) 阅读本章内容之前请确定已了解微赞工作流程. 本章内容主要介绍如何编写及发布微赞功能模块. 微赞功能模块是微赞系统中扩展的独立功能, 微赞系统提供了相应的机 ...

  3. 微信小程序网悦新闻开发--我的模块开发(五)

    目录 微信小程序网悦新闻开发--功能介绍(一) 微信小程序网悦新闻开发--小程序配置(二) 微信小程序网悦新闻开发--首页模块开发(三) 微信小程序网悦新闻开发--视频模块开发(四) 微信小程序网悦新 ...

  4. python 串口上位机_如何使用Python开发串口通讯上位机(二)

    黑色的dos窗口对于大部分来说,页面极为不友好,且操作不方便,因此本篇主要讲讲如何结合QtDesigner创建一个UI并初步与串口Api链接.1 QtDesigner进行上位机页面设计 Python下 ...

  5. Labview上位机与单片机系统的开发

    目的: 大家都知道,现在无论是做项目或者做一个相对复杂一点的系统,对于上位机的需求都是必不可少的,因此本文为大家提供了Labview的安装包以及VISA(串口通信需要)安装包,在后期也会一步一步和大家 ...

  6. STM32开发 -- 惯导模块开发详解

    如需转载请注明出处:https://juyou.blog.csdn.net/article/details/93476976 STM32开发 – GPS模块开发详解 这篇文章已经对于GPS模块开发讲得 ...

  7. php magento 开发,magento 2模块开发实例helloworld模块 hello world 程序 c语言hello world代码 c语言hello worl...

    data-id="1190000005008433" data-license="cc"> 1.在app/etc/config.php中添加自定义的模块( ...

  8. 开发工业上位机 用pyqt5_用Pyqt5开发的基于MTCNN、FaceNet人脸考勤系统

    import sys import cv2 from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import * from ...

  9. mars3dApp开发——“附近”功能模块开发

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.功能场景描述 二.实现过程 1.使用mars3d已经封装好的高德接口 2.根据设施code查询 3.附近点搜索 一.功能 ...

  10. Ubuntu配置上位机Blackfin开发环境手记

    Ubuntu配置上位机Blackfin开发环境手记 -------- 本文档适合使用Ctrl+F 搜索关键字 -------------- -------- It's more convenient ...

最新文章

  1. android 读取asset下的文件注意事项
  2. 什么?我要对AI礼貌?人机交互面临的道德漏洞
  3. 非计算机专业如何转行AI,找到算法offer?
  4. 成为一名更好的程序员:如何阅读源代码
  5. 组装自己的tesla超级计算机
  6. .net core EPPlus npoi_在.NET中隐藏带有只读Web路径的Web shell
  7. python有几种_Python常见的几种算法
  8. etl构建数据仓库五步法_构建数据仓库五步法
  9. Linux进阶之Linux中的标准输入输出
  10. cni k8s 插件安装_实现K8S中Pod带宽限制
  11. 视频教程-MATLAB图像处理-Matlab
  12. Python批量合并多个excel文件
  13. 【Bug解决】UnpicklingError: A load persistent id instruction was encountered, but no persistent_load.
  14. ajax php 源码,ThinkPHP Ajax 实例源代码_ThinkPHP教程
  15. re的剩余模块和subprocess模块
  16. 开源 | Objective-C Swift 最轻量级 Hook 方案
  17. 每日站会并不是只是站在开会就行了:每日站会范例
  18. 在c程序语言中aph,C 语言试题
  19. 向周鸿祎学习产品和产品推销方法
  20. ORACLE EXP/IMP详解

热门文章

  1. 苹果Mac定制化App开发神器:FileMaker Pro
  2. iPhone之UITextField缩进文本
  3. Gemini 2 for Mac(重复文件查找清理工具)
  4. 在Mac端的 几种文本操作技巧
  5. 安装和客户端证书颁发---puppet系列
  6. Ehlib 单元格 图像绘制 代码
  7. Android系统的开机画面显示过程分析(12)
  8. CentOS7忘记root密码的解决方法
  9. 分布式服务框架-原理与实践:15---服务降级-学习笔记
  10. 探究JVM——运行时数据区