【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)、继承以及模块化的结构…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
