概述
關於控件的垂直布局,如果多個控件垂直布局控件很多的情況下,勢必顯示不全。
肯定要出現滾動條,選擇什么樣的容器控件來提供滾動條比較好呢。
一、QScrollArea
可以使用這個容器添加控件,當控件超出容器范文時,會自動出現滾動條
從效率方面考慮不適用場景是,如果垂直排列的控件非常多成百上千個,然而這些控件的排列,將會很好內存,每個控件都需要
提前new出來,雖然我們可能一次看到的控件不過7到8個這樣是比較影響性能的,尤其是這些控件如果會定時刷新,那將是很不適合使用的了。
二、QTableWidget
這個控件也可以自動出現滾動條當行數超出一定范圍的時候
但是QScrollArea不適用的場景這個控件也不適用。控件特別多,如果再是定時刷新的情況下,就不適用了。
三、自己定義實現邏輯
自己定義實現這種方式當控件很多的情況下,不是出現滾動條,而是加個翻頁按鈕,能實現上下翻頁
基本思路就是:界面上布局定死控件個數,比如顯示六個。然而當要顯示的控件很多很多時,先把控件數據現在到內存
,其實界面始終只有六個控件,因為new控件是相當耗資源的,尤其是控件相當多的時候
這樣每次切換頁的時候,只要獲取的對應的控件(早已經設置好的控件)然后改變其數據就可以了。
總結:
QScrollArea、QTableWidget適用於數據量比較小,展示界面的控件個數有限,不會太多的情況,如果數據量很大、如果需要定時刷新建議使用自定義的形式
,自定義形式的缺點就是不會有滾動條,而是添加換頁按鈕。具體如何使用要綜合考量自己的業務場景,從效率,方便性、內存占用等方面綜合考量。
初始化的時候把需要的控件都加載出來,根據后台數據來確定控件顯示隱藏可用和不可用,控件的數量是固定死的,也只在界面展示的時候new一次。