【求助】易语言进度条怎么表示真实进度?
我们在安装软件或者游戏的时候,别人总有一个进度条,如下图:
人家的进度条都是真实的!
比如:进度条有时候快,有时候慢,到100%的时候程序就会安装成功,并不是做摆设,瞎胡弄的
那么易语言自带的进度条控件能不能实现这个功能呢?
所以我就自己写了一个进度条,界面如下:
源码部分如下:
运行测试的时候,问题就出现了,简单来说就是——跟人家的不一样:
我的进度条是以一种奇怪的方式往前一跳一跳的,并不是缓慢前进,似乎也不是真实的进度
源码已打包上传,怎么才能做出表示真实的进度条呢?
当进度条走完,在弹窗“安装成功”,来个老师帮指点一下吧,可以直接在源码框架上边修改
源码链接:https://wwqk.lanzouq.com/iEzZk2c76k6j
在易语言中,要实现进度条表示真实进度,通常可以通过以下步骤进行:
创建进度条:在易语言的界面设计器中,添加一个进度条组件,可以通过“控件”菜单找到。
设置进度条的范围:设置进度条的最小值和最大值,一般最小值设为0,最大值设为100(或者根据实际需要设置)。
计算真实进度:在执行某个任务时,实时计算当前进度。你可以通过循环或任务完成的比例来计算当前进度。
更新进度条:在计算得到当前进度后,使用进度条的属性来更新其显示值。例如,使用 进度条.值 属性来设置当前进度。
下面是一个简单的示例代码:
易语言
// 假设这是一个长时间运行的任务,比如下载文件
进度条.最小值 = 0
进度条.最大值 = 100
// 模拟任务执行
循环 (i = 0; i <= 100; i = i + 1)
// 更新进度条的值
进度条.值 = i
// 添加延时以模拟任务进行中的时间消耗
等待(100)// 等待100毫秒
结束循环
在这个示例中,我们通过一个循环来模拟任务的进度,每次循环都会更新进度条的值,并添加一定的等待时间,以便用户能够看见进度条的变化。
确保在更新进度条时,UI线程可以正常更新,如果任务是耗时的,可以考虑使用多线程来避免界面卡顿。 搜精易教程,看mp3播放部分,对你有帮助 当前进度÷总的×% 不就是进度了吗 直接上传源码
https://swdk.lanzouj.com/iZzzd2cckjhi
retn 发表于 2024-10-12 08:47
直接上传源码
https://swdk.lanzouj.com/iZzzd2cckjhi
谢谢大佬的源码,里边虽说少模块,但是大概也能看懂,我把您源码里关于进度条的核心代码贴了出来
这个进度条的真实性,得益于能算出百分比,也就是传输过程中知道已下载的大小,和,总的大小,进度条分成10000也是为了更细腻和准确。
但是我现在的问题是怎么样才能获取到一个函数的运行时间呢?这个时间可能会因为不同人的硬件以及网络环境都有所不同。
知道这些就对进度条的设计就很有帮助了
3楼的回复启发了我,也相对更具普遍性,积分奖励给3楼。我也有几个思路,也在那里一起回复
蔡坤明 发表于 2024-10-11 11:18
在易语言中,要实现进度条表示真实进度,通常可以通过以下步骤进行:
创建进度条:在易语言的界面设计器中 ...
感谢大佬指点,HB您拿去!
帖子里的例子我根据您说的思路,又重写了,基本上能实现真实的进度条了。
这里也有几个思路,可以用启动时间函数() 获取主要函数的运行时间,根据重要函数的数量,尽量去平衡分配进度条的位置。这是一种真实性
也可以设置标志位,当函数运行到某个指定位置,通过检测标志位知道函数的运行情况。
您提到的添加等待时间很重要,函数运行完和进度条走完不一样,这也就启发我最后的收尾程序,可以让卡在99%(好多程序最后卡99%然后在安装成功应该也是这个原理)
最后根据某个函数标志,检测后弹窗“安装成功”这样基本上就完美了
不客气的
页:
[1]