【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)、继承以及模块化的结构…...

Git版本控制工具的原理及应用详解(四)
本系列文章简介: 随着软件开发的复杂性不断增加,版本控制成为了开发团队中不可或缺的工具之一。在过去的几十年里,版本控制工具经历了各种发展和演变,其中Git无疑是目前最受欢迎和广泛应用的版本控制工具之一。 Git的出现为开发者…...

AI图书推荐:ChatGPT全面指南—用AI帮你更健康、更富有、更智慧
你是否在努力改善你的健康? 你是否长期遭受财务困难? 你想丰富你的思想、身体和灵魂吗? 如果是这样,那么这本书就是为你准备的。 《ChatGPT全面指南—用AI帮你更健康、更富有、更智慧》(CHATGPT Chronicles AQuick…...

C++ | Leetcode C++题解之第92题反转链表II
题目: 题解: class Solution { public:ListNode *reverseBetween(ListNode *head, int left, int right) {// 设置 dummyNode 是这一类问题的一般做法ListNode *dummyNode new ListNode(-1);dummyNode->next head;ListNode *pre dummyNode;for (i…...

【管理咨询宝藏99】离散制造智能工厂战略规划方案
本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏99】离散制造智能工厂战略规划方案 【格式】PDF版本 【关键词】智能制造、先进制造业转型、数字化转型 【核心观点】 - 推进EHS、品质一致性、生…...

java8 Stream使用中的一些实践
文章目录 使用Stream将List转换为Map时key冲突问题使用Stream时得到List的size为不为0,元素Object为null问题 使用Stream将List转换为Map时key冲突问题 如下: 把userList转换为userMap id为key user 为value 由于user2和user3的id相同,所以会…...

入门篇:Kafka基础知识·
目录 一、Kafka简介 二、Kafka核心组件 三、Kafka安装与配置 1.下载与解压 2.配置环境变量 3.配置server.properties 4.启动Kafka服务 四、Kafka基本操作 1.创建Topic 2.查看Topic列表 3.发送消息 4.接收消息 五、Kafka进阶使用 1.消息持久化与存储 2.消息顺序与…...

SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析
原文链接:SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247604401&idx4&snd2d39846dce07bee765c820de1cf92f3&chksmfa821956cdf5904…...

每日一题——力扣206. 反转链表(举一反三、思想解读)
一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三题目链接 目录 菜鸡写法编辑 代码点评 代码分析 时间复杂度 空间复杂度 专业点评 另一种方法编辑 代码点评 代码逻辑 时间复杂度 空间…...

【qt】纯代码界面设计
界面设计目录 一.界面设计的三种方式1.使用界面设计器2.纯代码界面设计3.混合界面设计 二.纯代码进行界面设计1.代码界面设计的总思路2.创建项目3.设计草图4.添加组件指针5.初始化组件指针6.添加组件到窗口①水平布局②垂直布局③细节点 7.定义槽函数8.初始化信号槽9.实现槽函数…...

【深度学习】SDXL中的Offset Noise,Diffusion with Offset Noise,带偏移噪声的扩散
https://www.crosslabs.org//blog/diffusion-with-offset-noise 带有偏移噪声的扩散 针对修改后的噪声进行微调,使得稳定扩散能够轻松生成非常暗或非常亮的图像。 作者:尼古拉斯古藤伯格 | 2023年1月30日 马里奥兄弟使用稳定扩散挖掘隧道。左图显示了未…...