概述
关于控件的垂直布局,如果多个控件垂直布局控件很多的情况下,势必显示不全。
肯定要出现滚动条,选择什么样的容器控件来提供滚动条比较好呢。
一、QScrollArea
可以使用这个容器添加控件,当控件超出容器范文时,会自动出现滚动条
从效率方面考虑不适用场景是,如果垂直排列的控件非常多成百上千个,然而这些控件的排列,将会很好内存,每个控件都需要
提前new出来,虽然我们可能一次看到的控件不过7到8个这样是比较影响性能的,尤其是这些控件如果会定时刷新,那将是很不适合使用的了。
二、QTableWidget
这个控件也可以自动出现滚动条当行数超出一定范围的时候
但是QScrollArea不适用的场景这个控件也不适用。控件特别多,如果再是定时刷新的情况下,就不适用了。
三、自己定义实现逻辑
自己定义实现这种方式当控件很多的情况下,不是出现滚动条,而是加个翻页按钮,能实现上下翻页
基本思路就是:界面上布局定死控件个数,比如显示六个。然而当要显示的控件很多很多时,先把控件数据现在到内存
,其实界面始终只有六个控件,因为new控件是相当耗资源的,尤其是控件相当多的时候
这样每次切换页的时候,只要获取的对应的控件(早已经设置好的控件)然后改变其数据就可以了。
总结:
QScrollArea、QTableWidget适用于数据量比较小,展示界面的控件个数有限,不会太多的情况,如果数据量很大、如果需要定时刷新建议使用自定义的形式
,自定义形式的缺点就是不会有滚动条,而是添加换页按钮。具体如何使用要综合考量自己的业务场景,从效率,方便性、内存占用等方面综合考量。
初始化的时候把需要的控件都加载出来,根据后台数据来确定控件显示隐藏可用和不可用,控件的数量是固定死的,也只在界面展示的时候new一次。