天天看點

QTableView、QTreeView、QListWIdget相同點和差別(異同)一、QTableView、QTreeView異同二、QTableView和QTreeView兩個控件跟控件QListWIdget的異同

一、QTableView、QTreeView異同

都需要設定mode,即setMode(QStandItemMode*)來設定表格和樹節點。其中QStandItemMode是标準項QStandItem的模型或者集合,通過不同函數添加進來。

QTableView控件中,QStandItemMode通過函數QStandItemMode::setItem(0,1,standItem01)将标準項QStandItem的執行個體對象添加到表格正文内容的第0行、第1列中。最後調用函數QTableView::setMode(mode)将模型關聯進表格控件。

QTreeView控件中,QStandItemMode的執行個體對象mode通過函數QStandItemMode::appendRow(QStandardItem *aitem)将标準項組QList<QStandItem*>的執行個體對象dotItem1添加進第一個節點,即mode->appendRow(dotItem1);想要在第一個節點繼續添加二級節點,則繼續調用函數QStandItemMode::appendRows(const QList<QStandardItem*> &aitems)将标準項組QList<QStandItem*>的執行個體對象dotItem2添加進二級節點,即aitems->appendRows(dotItem2);最後調用函數QTreeView::setMode(mode)将模型關聯進樹形控件。

二、QTableView和QTreeView兩個控件跟控件QListWIdget的異同

QTableView和QTreeView都需要用到QStandItemMode模型項,通過函數setMode來設定表格和樹節點,但是QListWIdget不需要設定setMode函數,直接用函數QListWIdget::addItem(QStandItem*)将每一項添加進清單。添加的順序一次從左到右,從上到下,如下所示:

0  1  2

                                    3  4  5

                                    6  7  8
                                    或者
                                    0  1  2  3  4  5  6  7  8
           

參考内容:

https://blog.csdn.net/dpsying/article/details/79688581(參考:QTreeView控件用法)

https://www.cnblogs.com/fuqia/p/9003760.html(參考:QListView控件用法)

https://blog.csdn.net/naibozhuan3744/article/details/80857561(參考:QListWidget控件用法)

繼續閱讀