Qt QtreeWidget树形结构图表
本例子采用treewidget类:他继承自treeview相对于treeview能简单方便一点。
本例思路:
三个root节点,每个root节点在添加child节点对应在child节点里添加item(项)。
具体看:
QTreeWidgetItem *additem();
void addroot(QTreeWidget *rootwidget,QStringList list)////////////////////////////////////////////////////////////////////////////////////////////
#include <QApplication>
#include<QDebug>
#include <QtCore/qglobal.h>
#include<QWidget>
#include<QStandardItemModel>
#include<QTableView>
#include<QHeaderView>
#include<QTreeWidget>
#include<QTreeWidgetItem> /***************************
* 添加child节点
* ****************************/
QTreeWidgetItem *additem()
{
QTreeWidgetItem *item1=new QTreeWidgetItem;
item1->setText(0,"yang");
item1->setText(1,"sen");
item1->setText(2,"hounan");
return item1;
}
/*************************
*
* 添加root节点
* ********************************/
void addroot(QTreeWidget *rootwidget,QStringList list){
QTreeWidgetItem *widgetitem=new QTreeWidgetItem(rootwidget);
widgetitem->setText(0,list.at(0));
widgetitem->setText(1,list.at(1));
widgetitem->setText(2,list.at(2));
rootwidget->addTopLevelItem(widgetitem);
widgetitem->addChild(additem());
widgetitem->addChild(additem());
widgetitem->addChild(additem());
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// QStandardItemModel *model=new QStandardItemModel;
// QStringList list;
// list<<"姓名"<<"性别"<<"年龄"<<"手机"<<"地址";
// model->setHorizontalHeaderLabels(list);
// model->setRowCount(4);
// model->setColumnCount(5);
// model->setItem(0,0,new QStandardItem("yangsen"));
// //model->removeRows(0,model->rowCount());
// model->removeRow(0);
// QTableView *view=new QTableView;
// view->setModel(model);
// view->setColumnWidth(2,200);
// view->verticalHeader()->hide();
// view->horizontalHeader()->setDefaultAlignment(Qt::AlignCenter);
// view->show();
QTreeWidget *treewidget=new QTreeWidget;
//treewidget->setFixedWidth(300);
//treewidget->horizontalScrollMode()->setFixedWidth(300);
treewidget->setColumnWidth(0,90);
treewidget->setColumnCount(3);
QStringList list;
list<<"姓名"<<"年龄"<<"性别";
treewidget->setHeaderLabels(list);
QStringList list1;
list1<<"one"<<"hou"<<"nan";
QStringList list2;
list2<<"two"<<"hou"<<"nan";
QStringList list3;
list3<<"three"<<"hou"<<"nan";
addroot(treewidget,list1);
addroot(treewidget,list2);
addroot(treewidget,list3);
treewidget->show();
return a.exec();
}