当前位置: 首页 > news >正文

【PB案例学习笔记】-03用户名密码校验

写在前面

通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。

文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git

gitee代码仓库

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example

如果对小伙伴有所帮助,希望能给一个小星星⭐支持一下小凡。

一、小目标

本小节使用了StaticText控件、SingleLineEdit控件、CommandButton控件、Messagebox函数

这小节的目的主要是学会SingleLineEdit控件的使用,其他控件及函数在第一小节已经设计,这里就不再重复了

最终实现如下截图效果

最终效果

二、创建程序基本框架

① 创建work工作区

② 建立app应用

③ 建立w_main窗口

以上步骤如果忘记怎么操作的小伙伴,可以看看第一篇文章。这里由于篇幅原因,就不再赘述

④ 窗口中布置控件

窗口中添加两个StaticText 控件、两个SingleLineEdit 控件和两个CommandButton 控件。

如下图所示,各个控件名称为st_1sle_1st_2sle_2cb_1cb_2

控件布置

⑤ 设置控件属性

控件名称属性值
w_maintitle密码验证
st_1Text请输入用户名:
st_2Text请输入密 码:
sle_1Text
sle_2TextPassword空 |true
cb_1TextDefault确定|true
cb_2TextCancel取消|true

控件添加属性

⑥ 保存窗口

三、编写事件代码

这里我们模拟系统密码为123456,实际密码需要去数据库查询获取

① 在按钮cb_1Clicked事件中添加如下代码

sle_1.Text 代码可以获取控件中文本内容

if sle_1.Text= '' thenmessagebox('提示信息','请输入用户名!')
elseif sle_2.text = '123456' thenmessagebox('欢迎使用', sle_1.Text+'你好!')elsemessagebox('提示信息','密码错误,请重新输入!')end ifend if

② 在按钮cb_2Clicked事件中添加如下代码进行关闭窗口

close(parent)

③ 在左边System Tree 窗口中双击App应用对象,在open 事件中添加如下代码

//程序启动打开窗口w_main
open(w_main)

四、运行程序

运行程序

密码验证

五、SingleLineEdit 控件

5.1 常用属性
属性名称描述
Visible 默认为 True。当为 False 时,该控件在窗口上隐藏
Enabled 默认为 True。当为 False 时,该控件不能获得焦点,用户不能进行编辑和选
中;控件背景为灰色
DisplayOnly 默认为 False。当为 True 时,该控件中的文字不能被修改,并且也不能
输入,但可以选中、复制
Password 默认为 False。当为 True 时,在该输入框中输入的内容显示为“ *”号,
星号的数目等于输入的字符的数目,加密规则依赖于操作系统。其实际内容和用户输入的内
容一致
AutoHScroll 默认为 True,表示当用户输入的内容显示不下时,可以自动横向滚动
光标,但是不显示滚动条
HideSelection 默认为 True,表示只有当单行编辑器获得焦点时,才高亮显示选中文
本。建议使用默认值,因为将该属性设置为 False,没有获得焦点时,选中的内容就高亮显示,
这容易让用户造成错误
Limit 默认是 0,表示没有长度限制。可以输入其他一个数字,表示该单行编辑框中
最多接受用户输入的字符个数,最大数字是 32 767
Case 有三个选项, upper 表示用户输入的内容中的字母都自动转换成大写, down
表示都自动转换成小写, any 表示不做转换
Text 这是该控件运行时最经常使用的一个属性。可以给该属性赋值来将特定信息显
示在单行编辑器中,也可以读取该属性而获得单行编辑器中的内容。设计状态下,在 Text
属性输入框中录入的文字在窗口刚刚打开时显示在单行编辑框中
Border 是否显示边框,默认为 True
5.2 事件和脚本

提供了 12 个事件, Modified 是经常使用的事件,其他事件和命令按钮的同名事件完全相同。

该事件的触发时机是在编辑器中输入内容后,焦点离开该编辑器时

单行编辑器提供了很多的函数,其中需要掌握的有 10 个经常使用的函数,这 10 个常用

5.2.1 CanUndo 函数

语法

sle_1.CanUndo ()

返回值:Boolean

  • 如果可以撤销上一次的编辑操作,则返回True
  • 如果不能撤销上一次的编辑操作,则返回False

功能

检查是否可以撤销上一次的编辑操作

5.2.2 Undo 函数

语法

sle_1.Undo()

功能

撤销上一次的编辑操作,恢复到之前的文本状态

5.2.3 Clear 函数

语法

sle_1.Clear ()

返回值:Integer

  • 清除的文本内容长度,清除一个字符,则返回1
  • 未选中内容,返回0
  • 执行错误返回-1

功能

清除SingleLineEdit控件中选中的文本内容

注: 需要在文本内容选中的情况下才能清除

5.2.4 Copy 函数

语法

sle_1.Copy()

返回值:Integer

  • 复制到剪切板的文本内容长度
  • 未选中内容,返回0
  • 执行错误返回-1

功能

SingleLineEdit控件中选定的文本复制到剪贴板。

5.2.5 Cut函数

语法

sle_1.Cut()

功能

SingleLineEdit控件中选定的文本剪切并复制到剪贴板。

返回值:Integer

  • 剪切到剪切板的文本内容长度
  • 未选中内容,返回0
  • 执行错误返回-1
5.2.6 Paste函数

语法

sle_1.Paste()

返回值:Integer

  • 剪切板的文本内容长度

功能

将剪贴板中的内容粘贴到SingleLineEdit控件中

5.2.7 SetFocus函数

语法

sle_1.SetFocus()

功能

将焦点设置到SingleLineEdit控件上

本期内容到这儿就结束了,希望对您有所帮助。
我们下期再见 ヾ(•ω•`)o (●’◡’●)

相关文章:

【PB案例学习笔记】-03用户名密码校验

写在前面 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git 需要源代码的小伙伴们可以自行…...

设计模式六大原则之 接口分离原则

文章目录 概念比较代码示例优势 小结 概念 要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。 比较 概念有了,再来看看比较下吧,和单一职责比较比较。 接口隔离原则和单一职责都是为了提高类的…...

嵌入式学习——Shell()——day21

(1)标准IO——有缓存 1.打开文件 fopen 2.读写文件 fgetc/fputc fgets/fputs fprintf/fscanf 3.关闭文件 fclose 1. 缓存(标准I…...

STM32学习计划

前言: 这里先记录下STM32的学习计划。 2024/05/08 今天我正在学习的是正点原子的I.MX6ULL APLHA/Mini 开发板的 Linux 之ARM裸机第二期开发的视频教程,会用正点原子的I.MX6ULL开发板学习第二期ARM裸机开发的教程,然后是学习完正点原子的I.M…...

小米15曝光?可能会要稍微涨价

也许是感受到了智能机市场的逐渐复苏,最近各大手机品牌发售新品的速度明显加快了。从4月份的Redmi、一加,再到5月份一大堆vivo、OPPO新机型的发布。而近日,有关小米14即将发售的消息也是悄咪咪的放了出来。 去年发售的小米14可以说是狠狠地让…...

深度优先搜索汇总

常用英文 最近公共祖先(Lowest Common Ancestor,简称LCA) posterity,英语单词,主要用作名词,作名词时译为“子孙,后裔;后代”。 什么是深度优先搜索 深度优先搜索,D…...

【虚拟仿真】Unity3D中实现对大疆无人机遥控器手柄按键响应

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 最近项目中需要用到大疆无人机遥控器对程序中无人机进行控制,遥控器是下图这一款: 博主发…...

Python学习之路 | Python基础语法(一)

数据类型 Python3 中常见的数据类型有: Number(数字)String(字符串)bool(布尔类型)List(列表)Tuple(元组)Set(集合)Dict…...

【已解决】AttributeError: module ‘clip‘ has no attribute ‘load‘

问题描述:运行YOLO-world时出现AttributeError: module clip has no attribute load。 情况分析: 1. 未安装clip包。 2. clip包中没有load方法。 解决办法: 1.重新安装clip包。 pip install clip pip install openai-clip 2. 安装后仍然报…...

安卓实现连接wesokcet

在build.gradle里引入依赖&#xff1a; implementation org.java-websocket:Java-WebSocket:1.5.2 在Androidmanifest.xml 文件里加入网络权限&#xff1a; <uses-permission android:name"android.permission.INTERNET" /> 代码&#xff1a; package com.x…...

Xinstall助力App下载量精准统计,洞悉推广效果

在移动互联网时代&#xff0c;App的下载量是衡量一个应用受欢迎程度的重要指标。然而&#xff0c;要精准统计App的下载量并不是一件容易的事情。为了解决这一难题&#xff0c;越来越多的开发者选择了Xinstall这一专业的App全渠道统计服务商。 Xinstall作为国内领先的App统计平…...

CSS字体修饰

1&#xff09;文字大小 &#xff08; font-size &#xff09; /* 设置文字大小为24个像素 */ font-size: 24px; 2&#xff09;字体粗细 &#xff08; font-weight &#xff09; /* 字体粗细在100-900之间可以进行调整 */ /* 字体加粗 */ font-weight: bolder; /* 或 fon…...

高并发缓存服务的构建要点与陷阱

1. 缓存基础与特征 在讨论高并发环境下构建缓存服务的问题前&#xff0c;我们需要先了解缓存的基础和特征。缓存&#xff08;Cache&#xff09;是一种高速数据存储层&#xff0c;它可以存储临时数据&#xff0c;以便将来的请求能更快地获取到这些数据。从本质上讲&#xff0c;…...

Electron学习笔记(五)

文章目录 相关笔记笔记说明 七、系统1、系统对话框2、自定义窗口菜单3、系统右键菜单4、快捷键(1)、监听网页按键事件 &#xff08;窗口需处于激活状态&#xff09;(2)、监听全局按键事件 &#xff08;窗口无需处于激活状态&#xff09;(3)、补充&#xff1a;自定义窗口菜单快捷…...

【jest 调试 - vscode debug】

jest 测试typescript&#xff0c;如果想对测试文件本身断点调试。 安装jest相关依赖 # jest本体 npm install --save-dev jest # jest的类型声明 npm install --save-dev types/jest # typescript中使用 npm install --save-dev ts-jestlaunch.json 配置参考 {"type&qu…...

华为OD机试【分奖金】(java)(100分)

1、题目描述 公司老板做了一笔大生意&#xff0c;想要给每位员工分配一些奖金&#xff0c;想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序&#xff0c;每个人随机抽取一个数字。按照工号的顺序往后排列&#xff0c;遇到第一个数字比自己数字大的&#xff0c;那么&…...

27- ESP32-S3 USB虚拟串口(USB-OTG 外设介绍)

ESP32-S3 USB虚拟串口详解 USB-OTG 外设介绍 USB-OTG&#xff1a; USB-OTG是一种USB规范&#xff0c;允许嵌入式系统&#xff08;如手机、平板电脑、单片机系统等&#xff09;在没有主机&#xff08;如个人电脑&#xff09;的情况下直接相互通信&#xff0c;同时也能够作为传…...

PostgreSQL查看sql的执行计划

PostgreSQL查看sql的执行计划 基础信息 OS版本&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本&#xff1a;16.2 pg软件目录&#xff1a;/home/pg16/soft pg数据目录&#xff1a;/home/pg16/data 端口&#xff1a;5777在PostgreSQL中&#xff0c;查看…...

macOS Ventura 13如何设置定时重启(命令行)

文章目录 macOS Ventura 13如何设置定时重启(命令行)前言具体设置步骤及命令解释其他 macOS Ventura 13如何设置定时重启(命令行) 前言 由于升级 macOS 13 Ventura 之后&#xff0c;之前在节能里面通过鼠标点击设置开机关机的方法不能用了&#xff0c;现在只能用命令设置开机…...

【sass简介以及如何安装使用】

Sass&#xff08;Syntactically Awesome Stylesheets&#xff09;是一个层叠样式表&#xff08;CSS&#xff09;预处理器&#xff0c;它扩展了CSS的语法&#xff0c;并增加了许多有用的功能&#xff0c;如变量、嵌套、混合&#xff08;Mixin&#xff09;、继承以及模块化的结构…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》

&#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...

leetcode_69.x的平方根

题目如下 &#xff1a; 看到题 &#xff0c;我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历&#xff0c;我们是整数的平方根&#xff0c;所以我们分两…...

五、jmeter脚本参数化

目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...