1、在UI界面中拖TreeView控件进UI界面。
2、一般Qt中使用model来管理数据与视图的关系,使用delegate重写point()处理UI效果。
一、model
QT提供了一些现成的models用于处理数据项:
QStringListModel 用于存储简单的QString列表。
QStandardItemModel 管理复杂的树型结构数据项,每项都可以包含任意数据。
QDirModel提供本地文件系统中的文件与目录信息。 QSqlQueryModel,QSqlTableModel,QSqlRelationTableModel用来访问数据库。
qt提供以上的一些可用model,下面主要用QStandardItemModel。
1、创建model,指定父类
QStandardItemModel *model = new QStandardItemModel(ui->treeView);//创建模型指定父类
ui->treeView->setModel(model);
2、model里有表头,具体代码如下:
model->setHorizontalHeaderLabels(QStringList()<<QStringLiteral("1"));//一种方式
QStandardItem* item=new QStandardItem("2");//另一种方式
model->setHorizontalHeaderItem(1,item);
3、model分级效果如下:
model->setItem(0,0,new QStandardItem("one"));
model->item(0,0)->setChild(0,0,new QStandardItem("二级1"));
model->item(0,0)->setChild(1,0,new QStandardItem("二级2"));
model->setItem(1,0,new QStandardItem("two"));
model->item(1,0)->setChild(0,0,new QStandardItem("二级1"));
4、设置可选框
model->item(0,0)->setCheckable(true);
model->item(0,0)->setCheckState(Qt::Checked);
model->item(0,0)->child(0,0)->setCheckable(true);
model->item(0,0)->child(0,0)->setCheckState(Qt::Unchecked);
model->item(0,0)->child(1,0)->setCheckable(true);
model->item(0,0)->child(1,0)->setCheckState(Qt::Checked);