天天看点

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控件用法)

继续阅读