业务需求:
基于网盘客户端的实现,原有网盘的设置面板无论从界面显示还是从业务需求都不能满足我们的正常需求。当前的要求是,模拟QQ系统设置的面板实现当前我们网盘中的基本配置功能。在完成这篇文章时已将基本功能实现完成,虽未整合进网盘客户端中,但基本技术预演已经实现。
QQ系统设置面板分析:
QQ系统设置面板效果图:
QQ系统设置面板功能描述:
由于存在较多的配置,如果每个模块的配置项都设计到一个窗体中,则会存在很多的窗体,不太符合用户的使用体验,且程序编写也比较麻烦。QQ系统设置面板中的实现是,所有的配置项均列在右侧区域中,当移动右侧的滚动条的过程中,如果对应的面板出现则在左边的导航中对应的标题也显示点击的效果。同时,单独点击左侧的导航,右面的区域也显示对应导航的配置项。
实现思路:
左侧:
左侧导航的实现很简单,使用QListWidget完全可以满足我们的需求,至于当点击左侧时右侧显示对应模块的配置项则需要我们添加处理代码完成。
右侧:
由于右侧存在导航栏,因此右侧的区域需要使用QScrollArea控件,这里需要注意两点:1> 在QScrollArea控件中每个模块的配置需要放在一个单独的QWidget中,只 有这样我们在移动滚动条经过某个某块的配置项时才可以识别到。2> 在实现滚动条效果时,看到网上有很多文章说滚动条效果无法实现出来,其实我的做法很简单,在ui窗体中将QScrollArea拖入窗体中,然后设置改窗体的属性:widgetR