【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_maxYield()                   //交出CPU控制权if ib_stop then           //根据实例变量,判断用户是否中断ib_stop = falseReturnend ifhPB_1.stepIt()        //进度条前进一个步长ll_start = Cpu()      //获取当前时间,存入ll_start 变量ll_used = Cpu() - ll_start  //计算使用时间do while ll_used < 50       //延时ll_used = Cpu() - ll_startloop
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.mzph.cn/bicheng/18525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java用反射reflect来实例化对象: class.getDeclaredConstructor().newInstance()

Java用反射reflect来实例化对象: class.getDeclaredConstructor().newInstance() 从java9开始, class.newInstance()已过时, 被加上Deprecated强烈反对注解 SuppressWarnings("removal")CallerSensitiveDeprecated(since"9")public T newInstance()throws …

防止自动化攻击的最佳实践

防止自动化攻击的最佳实践 在当今的网络安全环境中&#xff0c;保护用户账户免受自动化攻击已成为每个网站和应用程序的重要任务。攻击者可以利用多种不同类型的自动化攻击来尝试破坏用户账户。本文将详细介绍常见的攻击类型及其防御机制&#xff0c;帮助您更好地保护用户账户…

C# ManualResetEvent的用法

在C#中&#xff0c;ManualResetEvent类是一个同步基元&#xff0c;用于控制多个线程的执行顺序。下面是一些ManualResetEvent类的常见用法&#xff1a; 等待一个事件的发生&#xff1a;可以使用ManualResetEvent的WaitOne方法来等待事件的发生。当事件被触发时&#xff0c;Wait…

adb 连接机顶盒命令

抓机顶盒日志的方法&#xff0c;使用此命令进行抓日志&#xff0c;个别无法抓日志的盒子可以使用此方法 1、安卓9.0版本查询命令 ps -ef |grep com.cm.webos.iptv 2、安卓4.4版本查询命令 ps |grep com.cm.webos.iptv 3、查询顺序&#xff1a;首先进入shell下进行操作 adb she…

C++青少年简明教程:for循环语句

C青少年简明教程&#xff1a;for循环语句 C的for循环语句是一种迭代控制语句&#xff0c;用于重复执行一段代码。 语法格式&#xff1a; for(表达式1&#xff1b;表达式2&#xff1b;表达式3) 循环体 for循环语句执行流程图&#xff1a; 不太好理解&#xff0c;请看下图&am…

VSCode配置Lua5.4安装

参考&#xff1a;VSCode 配置 Lua 开发环境(清晰明了)_lua vscode-CSDN博客 1.下载 Lua Binaries Download (sourceforge.net) 2.配置环境变量 解压放到某文件夹&#xff1a; 环境变量&#xff1a; 3.VSCode安装插件 4.配置 5.测试

Python | Leetcode Python题解之第116题填充每个节点的下一个右侧节点指针

题目&#xff1a; 题解&#xff1a; class Solution:def connect(self, root: Node) -> Node:if not root:return root# 从根节点开始leftmost rootwhile leftmost.left:# 遍历这一层节点组织成的链表&#xff0c;为下一层的节点更新 next 指针head leftmostwhile head:#…

快解析动态域名解析,实现外网访问内网数据库

今天跟大家分享一下如何借助快解析动态域名解析&#xff0c;在两种特定网络环境下&#xff0c;实现外网访问内网mysql数据库。 第1种网络环境&#xff1a;路由器分配的是动态公网IP&#xff0c;且有路由器登录管理权限。如何实现外网访问内网mysql数据库&#xff1f; 针对这种…

继承与Object

一.继承 Java语言的继承&#xff1a;单继承 1.类和类之间的关系 (1)组合关系 公司和员工&#xff0c;学校和学生 (2)继承关系 学生和人 二.Object类 public class Object {private static native void registerNatives();static {registerNatives();} 1.finalize() 对象…

FPGA时钟:驱动数字逻辑的核心

一、引言 在FPGA&#xff08;现场可编程门阵列&#xff09;设计中&#xff0c;时钟信号是不可或缺的关键要素。时钟信号作为时序逻辑的心跳&#xff0c;推动着FPGA内部各个存储单元的数据流转。无论是实现复杂的逻辑运算还是处理高速数据流&#xff0c;都需要精确的时钟信号来保…

Vanna使用ollama分析本地MySQL数据库

上一章节中已经实现了vanna的本地运行&#xff0c;但是大模型和数据库都还是远程的&#xff0c;因为也就没办法去训练&#xff0c;这节一起来实现vanna分析本地mysql数据库&#xff0c;因为要使用本地大模型&#xff0c;所以开始之前需要给本地安装好大模型&#xff0c;我这里用…

WPF/C#:理解与实现WPF中的MVVM模式

MVVM模式的介绍 MVVM&#xff08;Model-View-ViewModel&#xff09;是一种设计模式&#xff0c;特别适用于WPF&#xff08;Windows Presentation Foundation&#xff09;等XAML-based的应用程序开发。MVVM模式主要包含三个部分&#xff1a;Model&#xff08;模型&#xff09;、…

期权具体怎么交易详细的操作流程?

期权就是股票&#xff0c;唯一区别标的物上证指数&#xff0c;会看大盘吧&#xff0c;交易两个方向认购做多&#xff0c;认沽做空&#xff0c;双向t0交易&#xff0c;期权具体交易流程可以理解选择方向多和空&#xff0c;选开仓的合约&#xff0c;买入开仓和平仓没了&#xff0…

【Spring Cloud】API网关

目录 什么是API网关为什么需要API网关前言问题列表 API网关解决了什么问题常见的网关解决方案NginxLuaSpring Cloud Netflix ZuulSpringCloud Zuul的IO模型弊端 Spring Cloud Gateway 第二代网关——GatewayGateway的特征Spring Cloud Gateway的处理流程Spring Cloud Gateway的…

数据集要点和难点以及具体应用案例

数据集(Data set),又称为资料集、数据集合或资料集合,是一种由数据所组成的集合。它通常以表格形式出现,其中每一列代表一个特定变量,每一行对应于某一成员的数据集的问题。数据集列出的价值观为每一个变量,如身高和体重的一个物体或价值的随机数,每个数值被称为数据资…

我的又一个神奇的框架——Skins换肤框架

为什么会有换肤的需求 app的换肤&#xff0c;可以降低app用户的审美疲劳。再好的UI设计&#xff0c;一直不变的话&#xff0c;也会对用户体验大打折扣&#xff0c;即使表面上不说&#xff0c;但心里或多或少会有些难受。所以app的界面要适当的改版啊&#xff0c;要不然可难受死…

Android Surface对应的Buffer怎么传递给HWC

Android Surface对应的Buffer怎么传递给HWC 引言 因为要预研Android Video overlay&#xff0c;需要将SurfaceView对应的GraphicBuffer从drm_hwcomposer中剥离出来&#xff0c;这就需要们了解SurfaceView对应的GraphicBuffer的前世今生&#xff0c;以及它的数据流向以及在各个…

轻兔推荐 —— vfox

简介 vfox 是一个跨平台且可扩展的版本管理工具&#xff0c;终于有一个可以管理所有运行环境的工具了 - 支持一键安装 Java、Node.js、Flutter、.Net、Golang、PHP、Python等多种环境 - 支持一键切换不同版本 特点 支持Windows(非WSL)、Linux、macOS! 支持不同项目不同版本、…

(四)事件系统

视频链接:尚硅谷2024最新版微信小程序 文章目录 事件绑定和事件对象事件分类以及阻止事件冒泡事件传参-data-*自定义数据事件传参-mark 自定义数据事件绑定和事件对象 小程序中绑定事件与在网页开发中绑定事件几乎一致,只不过在小程序不能通过 on 的方式绑定事件,也没有 cli…

C# 9.0的init访问器

不控制可变性 下面是我们最常见的属性声明方式&#xff0c;允许属性在类的内部和外部都可以读取和修改 public int Id { get; set; }namespace Demo {public class Company{public int Id { get; set; }public Company(){}public Company(int id){Id id; // 可以在构造函数中…