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

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example】
如果对小伙伴有所帮助,希望能给一个小星星⭐支持一下小凡。
一、小目标
本小节使用了StaticText控件、SingleLineEdit控件、CommandButton控件、Messagebox函数
这小节的目的主要是学会SingleLineEdit控件的使用,其他控件及函数在第一小节已经设计,这里就不再重复了
最终实现如下截图效果

二、创建程序基本框架
① 创建work工作区
② 建立app应用
③ 建立w_main窗口
以上步骤如果忘记怎么操作的小伙伴,可以看看第一篇文章。这里由于篇幅原因,就不再赘述
④ 窗口中布置控件
窗口中添加两个StaticText 控件、两个SingleLineEdit 控件和两个CommandButton 控件。
如下图所示,各个控件名称为st_1、sle_1、st_2、sle_2、cb_1和cb_2

⑤ 设置控件属性
| 控件名称 | 属性值 | 值 |
|---|---|---|
w_main | title | 密码验证 |
st_1 | Text | 请输入用户名: |
st_2 | Text | 请输入密 码: |
sle_1 | Text | 空 |
sle_2 | Text 、Password | 空 |true |
cb_1 | Text、Default | 确定|true |
cb_2 | Text 、Cancel | 取消|true |

⑥ 保存窗口
三、编写事件代码
这里我们模拟系统密码为123456,实际密码需要去数据库查询获取
① 在按钮cb_1 的Clicked事件中添加如下代码
sle_1.Text 代码可以获取控件中文本内容
if sle_1.Text= '' thenmessagebox('提示信息','请输入用户名!')
elseif sle_2.text = '123456' thenmessagebox('欢迎使用', sle_1.Text+'你好!')elsemessagebox('提示信息','密码错误,请重新输入!')end ifend if
② 在按钮cb_2 的Clicked事件中添加如下代码进行关闭窗口
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里引入依赖: implementation org.java-websocket:Java-WebSocket:1.5.2 在Androidmanifest.xml 文件里加入网络权限: <uses-permission android:name"android.permission.INTERNET" /> 代码: package com.x…...
Xinstall助力App下载量精准统计,洞悉推广效果
在移动互联网时代,App的下载量是衡量一个应用受欢迎程度的重要指标。然而,要精准统计App的下载量并不是一件容易的事情。为了解决这一难题,越来越多的开发者选择了Xinstall这一专业的App全渠道统计服务商。 Xinstall作为国内领先的App统计平…...
CSS字体修饰
1)文字大小 ( font-size ) /* 设置文字大小为24个像素 */ font-size: 24px; 2)字体粗细 ( font-weight ) /* 字体粗细在100-900之间可以进行调整 */ /* 字体加粗 */ font-weight: bolder; /* 或 fon…...
高并发缓存服务的构建要点与陷阱
1. 缓存基础与特征 在讨论高并发环境下构建缓存服务的问题前,我们需要先了解缓存的基础和特征。缓存(Cache)是一种高速数据存储层,它可以存储临时数据,以便将来的请求能更快地获取到这些数据。从本质上讲,…...
Electron学习笔记(五)
文章目录 相关笔记笔记说明 七、系统1、系统对话框2、自定义窗口菜单3、系统右键菜单4、快捷键(1)、监听网页按键事件 (窗口需处于激活状态)(2)、监听全局按键事件 (窗口无需处于激活状态)(3)、补充:自定义窗口菜单快捷…...
【jest 调试 - vscode debug】
jest 测试typescript,如果想对测试文件本身断点调试。 安装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、题目描述 公司老板做了一笔大生意,想要给每位员工分配一些奖金,想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序,每个人随机抽取一个数字。按照工号的顺序往后排列,遇到第一个数字比自己数字大的,那么&…...
27- ESP32-S3 USB虚拟串口(USB-OTG 外设介绍)
ESP32-S3 USB虚拟串口详解 USB-OTG 外设介绍 USB-OTG: USB-OTG是一种USB规范,允许嵌入式系统(如手机、平板电脑、单片机系统等)在没有主机(如个人电脑)的情况下直接相互通信,同时也能够作为传…...
PostgreSQL查看sql的执行计划
PostgreSQL查看sql的执行计划 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:5777在PostgreSQL中,查看…...
macOS Ventura 13如何设置定时重启(命令行)
文章目录 macOS Ventura 13如何设置定时重启(命令行)前言具体设置步骤及命令解释其他 macOS Ventura 13如何设置定时重启(命令行) 前言 由于升级 macOS 13 Ventura 之后,之前在节能里面通过鼠标点击设置开机关机的方法不能用了,现在只能用命令设置开机…...
【sass简介以及如何安装使用】
Sass(Syntactically Awesome Stylesheets)是一个层叠样式表(CSS)预处理器,它扩展了CSS的语法,并增加了许多有用的功能,如变量、嵌套、混合(Mixin)、继承以及模块化的结构…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
