【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)、继承以及模块化的结构…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...