【PB案例学习笔记】-10 进度条使用

写在前面

这是PB案例学习笔记系列文章的第10篇,该系列文章适合具有一定PB基础的读者。

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

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

gitee代码仓库

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

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

一、小目标

在项目中,我们有时候会遇到检索大数据,文件下载等耗时比较长的功能。

这时候进度条就排上用场了,使用了进度条可以使交互界面比较友好。

PB中一共有HProgressBarVProgressBar两种进度条,本篇文章,我们的目的就是创建一个进度条,模拟一个任务进度情况。

最终效果如下图所示

使用进度条

二、创建程序基本框架

① 新建examplework 工作区

② 新建exampleapp应用

③ 新建w_main窗口。Title设置为进度显示

以上步骤如果忘记的小伙伴,可以翻一下第一篇文章复习一下

④ 添加控件,进行页面布局

在窗口中添加一个HProgressBar控件和两个CommandButton 控件。控件名称依次为hpb_1cb_1cb_2

hpb_1setstep属性设置为2

控件名称属性
hpb_1MinPositonMaxPositon
cb_1Text开始
cb_2Text停止

添加控件

三、编写代码

① 编写实例变量

boolean ib_stop

② 在按钮cb_1clicked事件中添加如下脚本

long ll_step, ll_max
long ll_start, ll_used
ll_max = hPB_1.MaxPosition   //获取进度条的最大位置
for ll_step = 1 to ll_max
	Yield()                   //交出CPU控制权
	if ib_stop then           //根据实例变量,判断用户是否中断
		ib_stop = false
		Return
	end if
		hPB_1.stepIt()        //进度条前进一个步长
		ll_start = Cpu()      //获取当前时间,存入ll_start 变量
		ll_used = Cpu() - ll_start  //计算使用时间
		do while ll_used < 50       //延时
			ll_used = Cpu() - ll_start
		loop
Next

③ 在按钮cb_2clicked事件中添加如下代码

ib_stop = true

④ 在开发界面左边的System Tree窗口中双击 exampleapp 应用,在其Open事件中添加如下代码

open(w_main)

四、运行程序

运行程序,点击开始按钮后如下图所示

使用进度条

五、进度条控件

5.1 常用属性

MinPositionMaxPosition属性

默认值分别是0和100,用来指定进度条上滑块最左(最上)最右(最下)位置时所代表的数值

Position属性

这是一个非常中药的属性,决定进度条当前的位置

SetStep属性

指每次前进或者后退的幅度,默认值为10

SmoothScroll 属性

指定进度条是否平滑前进,默认为False,实际使用中建议将该值设置为True,这样界面显示效果会更好

5.2 常用函数

OffsetPos 函数

语法:

control.OffsetPos(Increment)

功能:

使进度条 control 中的光亮条前进 increment 长度 。当到达或超过进度条的最大值时不能自动重新开始。

例如,当前高亮条长度为 70,进度条 hpb_1 的最大值为 100,

使用函数 hPB_1.OffsetPos(40)只能使高亮条宽度为 100,而不是 10

StepIt 函数

语法:

control.StepIt()

功能:

使进度条 control 中的光亮条前进 SetStep 长度。当到达或超过进度条的最大值时可以重新开始。

例如,当前高亮条长度为 70,进度条 hPB_1 的最大值为 100,使用函数
hPB_1.StepIt(40)可以使高亮条宽度达到 100 后再到达 10 的位置。

本期内容到这儿就结束了,希望对您有所帮助 ★,°:.☆( ̄▽ ̄)/$:.°★

我们下期再见 ヾ(•ω•`)o (●’◡’●)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/652186.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2.5D的架构图相比3D有五大不可替代优势

2.5D架构图是一种介于2D和3D之间的图形表现形式&#xff0c;具有以下几个优势&#xff1a; 省时省力&#xff1a;相比于完全的3D架构图&#xff0c;2.5D架构图的制作相对简单&#xff0c;可以节省制作时间和人力成本。它只需要在平面上进行设计和绘制&#xff0c;不需要考虑3D…

域提权漏洞系列分析-Zerologon漏洞分析2

漏洞点⼆&#xff1a;错误设置CFB8模式 建⽴安全通道时&#xff0c;需要使⽤ComputeNetlogonCredential函数对客户端的Netlogon凭据输⼊client challenge和服 务器的Netlogon凭据输⼊server challenge (SC&#xff09;进⾏加密&#xff0c;ComputeNetlogonCredential函数⽀持使…

飞控如何和接收机接线?

飞控如何和接收机接线&#xff1f; 一般遥控都是按照顺序1对1接到飞控的INPUT端口。特别注意&#xff0c;华科尔的接收机&#xff0c;需要把1和2通道条换过来。 具体方法如下&#xff1a; 下面以MC6遥控接收机为例子&#xff1a; 用下面的图的接收机连接线来演示&#xff1a…

【C++】开源:RabbitMQ安装与配置使用(SimpleAmqpClient)

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&#x1…

隆道专属商城 | 助力企业跨平台整合优势资源,解决采购寻源比价难题!

数字化采购时代&#xff0c;企业面临着日益激烈的市场竞争&#xff0c;如何优化资源配置、降低采购成本、提高采购效率成为企业追求的核心目标。当前&#xff0c;网上商城凭借其强大的供应链资源整合能力&#xff0c;为企业内部采购商城的搭建提供了独特的优势&#xff0c;已然…

常见SSL证书品牌关系图

常见SSL证书品牌关系图 在SSL证书市场上&#xff0c;有几个主要的品牌和他们之间的复杂关系。以下是一些主要的SSL证书提供商及其关系的简要概述&#xff1a; DigiCert&#xff1a; DigiCert 是最大的SSL证书颁发机构之一。它收购了Symantec的SSL和PKI业务&#xff0c;其中包括…

Java从坚持到精通-SpringBoot项目-多来米云客(持续更新中)

1.项目介绍 该项目模仿动力云客制作&#xff0c;是一款商业的集营销销售为一体的客户关系管理系统&#xff0c;其采用信息化、数字化方式来进行营销销售及客户管理。 云客指的是海量客户&#xff0c;通过技术方式实现的这一套系统&#xff0c;可用于自动化分析销售、市场营销…

一个通俗易懂的例子,带你彻底明白 同步异步,阻塞非阻塞

阻塞I/O&#xff08;Blocking I/O&#xff09; 例子&#xff1a;你亲自去仓库取书。 过程&#xff1a; 你开车去仓库。在路上花时间开车到仓库。到了仓库后&#xff0c;排队等待拿到书。拿到书后&#xff0c;开车回家。 在整个过程中&#xff0c;你自己&#xff08;相当于程…

521源码-免费音乐源码-最新流媒体在线音乐系统网站源码| 英文版源码| 音乐社区 | 多语言 | 开心版

免费音乐源码 一键自动安装&#xff1a;安装用翻译看提示操作即可 本源码下载地址&#xff1a;最新流媒体在线音乐系统网站源码| 英文版源码| 音乐社区 | 多语言 | 开心版 - 521源码 更多网站源码学习教程&#xff0c;请点击&#x1f449;-521源码-&#x1f448;获取最新资源…

数据结构(四)双向链表

文章目录 一、概念二、无头双向链表示意图三、操作&#xff08;一&#xff09;定义结构体&#xff08;二&#xff09;创建链表1. 函数定义2. 注意点3. 代码实现 &#xff08;三&#xff09;插入1. 函数定义2. 注意点3. 代码实现 &#xff08;四&#xff09;删除1. 函数定义2. 注…

了不起的学习生产板OrangePiAiPro

一. OrangePi AiPro介绍和初始化配置 介绍 香橙派 orangePiAIpro这个板子其实早在一年前就已经有了大面积推广且应用于各种真实的智能场景中了&#xff0c;比如图像识别&#xff0c;大文本语义解析&#xff0c;语音识别等&#xff0c;今日我也终于下手啦。 因为本人本科是一个嵌…

【Ambari】Docker 安装Ambari 大数据单机版本

目录 一、前期准备 1.1 部署 docker 1.2 部署 docker-compose 1.3 版本说明 二 、镜像构建启动 2.1 系统镜像构建 2.2 安装包源镜像构建 2.3 kdc镜像构建 2.4 集群安装 2.5 容器导出为镜像 三、Ubuntu环境安装测试 3.1 环境准备 3.2 集群容器启动 一、前期准备 1.…

Android Activity 设计详解

文章目录 Android Activity 设计说明1. Activity 的生命周期2. Activity 的启动模式3. Activity 的通信4. Activity 的布局和视图管理5. Activity 的配置变化处理6. Activity 的保存和恢复状态7. Activity 的任务和返回栈 总结 Android Activity 设计说明 在 Android 中&#…

了解Java垃圾收集

Java 的垃圾收集机制在 Java 应用程序开发中至关重要。此机制对于通过消除不再使用的对象来释放内存空间得过程来说至关重要。在这篇文章中&#xff0c;我带大家深入了解下 Java 垃圾收集的机制&#xff0c;并探索其工作原理、优点以及实现最佳性能的最佳实践。 1.什么是 Java…

数据挖掘之归一化

归一化(Normalization)的概念 在数据分析和机器学习中,归一化(Normalization)是一个常见的数据预处理技术。归一化的目的是将数据特征缩放到一个共同的尺度上,以便于后续的分析和建模。 归一化也称为最小-最大规范化 公式: x ′ x − m i n ( x ) m a x ( x ) − m i n ( x…

httpsok-v1.12.0支持LB证书自动部署

&#x1f525;httpsok-v1.12.0支持LB证书自动部署 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具&#xff0c;基于全新的设计理念&#xff0c;专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业&#xff0c;稳定、安全、可靠。 一行命令&#xff0c;一分钟轻松搞…

【Python】 探索Python中的“命名元组”

基本原理 在Python中&#xff0c;元组&#xff08;tuple&#xff09;是一种不可变序列&#xff0c;它允许我们存储一系列的元素&#xff0c;并且这些元素一旦被创建就不能被修改。元组的这种不可变性使得它们在多线程编程中非常安全&#xff0c;因为不需要担心数据被意外修改。…

2024电激世界脉动-中国汽车品牌全球化制胜手册

来源&#xff1a;奥美Ogilvy&#xff1a; 近期历史回顾&#xff1a; 2024中国宏观经济专题报告-数据要素市场建设 2023-2024年度报告.pdf 2024制药与生化医疗技术产业链白皮书.pdf 从可再生能源到绿氢-中国投资助力埃及能源转型.pdf 2024有机旅行中国行业指引.pdf 2024中国技术…

SpringBoot——发送HTML格式的邮件

目录 项目总结 新建一个SpringBoot项目 pom.xml application.properties配置文件 EmailService服务类 SpringbootMailHtmlApplicationTests测试类 项目总结 在SpringBoot项目中发送HTML格式的邮件的思路&#xff1a; 添加依赖&#xff1a;在项目中添加spring-boot-starte…

ROCm上运行网络中的网络(NiN)

7.3. 网络中的网络&#xff08;NiN&#xff09; — 动手学深度学习 2.0.0 documentation (d2l.ai) 代码 import torch from torch import nn from d2l import torch as d2ldef nin_block(in_channels, out_channels, kernel_size, strides, padding):return nn.Sequential(nn.…