安装包UI美化之路-进度条的多种配置方法

14 篇文章 3 订阅
2 篇文章 0 订阅

安装包的进度条,你真正关心过么? 你知道如何配置出美观的进度条么?遇到特殊的进度条需求,你知道怎么实现么?

安装包的美化过程中,有一个细节比较重要,那就是进度条的呈现样式!

呈现得是否自然,是否足够美观,有没有亮点,这些往往都是客户所追求的一个点。

在nsNiuniuSkin+Nsis的安装包美化解决方案中,我们有多种方案来配置进度条的UI呈现,满足不同场景的需求。当然,我们的进度条目前来讲还是相对传统的,还是属于从左到右的一个进度呈现,未来我们将会提供更多形式的进度样,以满足不同客户的要求。

下面我们来看一下有哪些配置方法:

1. 通过Slider控件,结合背景图和前景图来实现

这个属于最标准的duilib的进度条配置方案,背景图将先绘制,铺满整个Slider的区域,而前景图将会后绘制,而前景图只会绘制到进度所到之处,以此来区分显示当前进度。 配置脚本如下:

<Slider name="slrProgress" padding="20,53,20,0" height="24" value="20" min="0" max="100" mouse="false" foreimage="file='images\progress_fore.png' corner='5,5,5,5'" bkimage="file='images\progress_bk.png' corner='5,5,5,5'" />

效果如下:

此处要注意的是,进度条我们可以设计成带圆角的图片,同时在XML脚本中通过corner属性固定两头,中间拉伸;这样就得到了可变长的进度条效果;同时,可以给前景图和背景图设计好渐变色,这样在拉伸的过程中呈现的会更有层次感。

2. 通过Slider控件,去掉图片,完全通过图片来实现进度条

完全通过颜色来控制;在Slider控件中,除了通过图片来呈现进度外,我们还可以通过前景色和背景色来呈现进度;同时我们实现了可渐变的前景色,具体配置如下:

<Slider name="slrProgress" padding="20,53,20,0" height="8" value="1" min="0" max="100" mouse="false" forecolor="0xFF44D7B6" forecolor2="0xFF2979FF" thumbsize="0,0" bkcolor="#FFE3E3E3" />

效果如下:

在有些场景下,我们需要尽可能减少安装包的体积,同时又要保持进度条的优雅,那么这种配置方案将会更加适合。

3. 通过Slider控件,结合thumbimage来实现进度呈现

有了上述两种效果就够了么? 在90%以上的场景应该是够用了,简洁又方便;但如果你还想追求更完美一点的效果,不妨试试下面这个方案。

比如我们将在进度达到的地方,呈现一个小火箭,以此表示安装正在努力的向前冲,应该如何做呢?

配置如下:

<Slider name="slrProgress" padding="20,53,20,0" height="24" value="20" min="0" max="100" mouse="false" thumbimage="file='images\rocket.png'" thumbsize="50,24" foreimage="file='images\progress_fore.png' corner='5,5,5,5'" bkimage="file='images\progress_bk.png' corner='5,5,5,5'" />

效果如下:

这个方案其实是在方案1的基础上,增加了一个thumbimage来呈现当前的进度,效果应该说还是非常不错的!

其实,这里并不一定需要用到thumbimage,直接通过foreimage,结合corner属性也能做到;这里留一个悬念,大家觉得应该如何设计前景图,然后如何配置foreimage吗?想知道的,可以到我们的交流群中咨询讨论哈!

4. 进度条支持gif,让安装动起来

假设我们希望做一个跟水有关的安装包,安装的进度,我想要有一条鱼在游动着,进度到哪里,它就游到哪里,这时候应该怎么办呢?

很明显,上面三种方案都无法实现,在目前我们的nsNiuniuSkin插件中,并不支持这样的进度条,那么是否意味我们不能实现这样的效果了呢?

答案是否定的,nsNiuniuSkin与Nsis的方案的最大特点就是灵活,我们把所有接口提供给了Nsis,可以结合脚本的能力来实现这一功能。 配置方案如下:

  • 在xml中放置一个浮动的GifAnim控件,用于呈现游动的鱼
  • 在安装进度的回调的NSIS脚本中,我们通过计算到的进度,控制GifAnim控件的位置,即可实现相应的效果(上一节中说到的火箭,事实上我们也可以通过脚本来实现)

XML配置如下:

<Slider name="slrProgress" padding="20,53,20,0" height="24" value="20" min="0" max="100" mouse="false" foreimage="file='images\progress_fore.png' corner='5,5,5,5'" bkimage="file='images\progress_bk.png' corner='5,5,5,5'" /> <GifAnim float="true" name="slrProgress_float" bkimage="file='images\walk.gif'" pos = "20,276,47,320" visible="true"/>

NSIS脚本如下(在ExtractCallback函数中增加如下脚本):

# 计算gif位置,计算X坐标,存入$R2-$R3
System::Int64Op $R6 * 500
Pop $R2 
System::Int64Op $R2 / 100
Pop $R2 # left坐标
System::Int64Op $R2 + 20
Pop $R2 # left坐标
System::Int64Op $R2 + 27 
Pop $R3 # right坐标
nsNiuniuSkin::SetControlAttribute $hInstallDlg "slrProgress_float" "pos" "$R2,286,$R3,310"

效果如下:

这样是不是更加有动感了呢!

这里不一定要有前景图和背景图,使用前景色和背景色的方案也是一样的,可以根据需要自行组合!

如果您还有更多的进度条配置方案,或者有更细、要求更高的安装包进度需求,随时联系我们吧!

结语

在安装包安装过程中,精美的UI往往能让客户对所安装产品的印象更加深刻,更能体现出软件服务商在用户体验上的专注与用心! 希望我们的努力,能够让安装包制作再容易一点,再快乐一点!

愿天下没有难做的安装包!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QT是一款跨平台的应用程序开发框架,能够运行在Windows、Linux和Mac三种操作系统上。为了适应不同操作系统的安装需求,QT提供了相应的在线安装。 首先,对于Windows系统,我们可以下载QT6的Windows在线安装。这个安装可以根据用户的需求选择不同组件进行安装,以便开发各种类型的应用程序。安装内部含了必要的库文件、示例代码和开发工具,既可以满足普通用户的使用需求,也可以满足开发人员的开发需求。 对于Linux系统,QT6也提供了相应的在线安装。用户可以选择Ubuntu、CentOS等常见的Linux发行版进行安装安装过程中,用户可以选择安装的功能模块和插件,以便满足不同的应用程序开发需求。QT6的在线安装含了与Linux系统集成的必要工具和库文件。 另外,对于Mac系统,QT6同样提供了在线安装。用户可以从官方网站上下载并安装这个。在安装过程中,用户可以按照自己的需要选择安装的组件,比如Qt Creator、Qt Quick、Qt OpenGL等。通过这个安装,开发人员可以方便地在Mac系统上进行QT应用程序的开发和调试。 总的来说,QT6的在线安装可以在Windows、Linux和Mac三种操作系统上进行安装。用户可以根据自己的需求选择相应的安装,并根据自己的需要安装相应的组件和插件。这样,用户就可以方便地使用和开发QT应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值