Qt自带了QTreeView控件用于树形菜单的展示,记录基本的使用方法。
一、在QT设计师中拖入一个QTreeView控件 二、代码// 1、用model管理数据与视图的关系 QStandardItemModel* model = new QStandardItemModel(ui.treeView); //创建模型指定父类 model->setHorizontalHeaderLabels(QStringList() << "Title"); // 设置表头 QStringList primaryTitle; QStringList secondaryTitle; QList三、效果 四、其他设置titleLength; primaryTitle << "一级标题1"<< "一级标题2" << "一级标题3"; secondaryTitle << "二级标题1" << "二级标题2" << "二级标题3" << "二级标题4" << "二级标题5" << "二级标题6"; titleLength << 1 << 2 << 3; int start = 0; for (int i1 = 0; i1 < primaryTitle.length(); i1++){ // 一级节点 QString subprimaryTitle = primaryTitle[i1]; QList items1; QStandardItem* item1 = new QStandardItem(subprimaryTitle); //item1->setFont(fontChoose); items1.append(item1); model->appendRow(items1); //二级节点 for (int i2 = 0; i2 < titleLength[i1]; i2++){ QList items2; QStandardItem* item3 = new QStandardItem(secondaryTitle[start + i2]); items2.append(item3); item1->appendRow(items2); } start += titleLength[i1]; } // 2、给QTreeView应用model ui.treeView->setModel(model);
// 设置不可编辑 ui.treeView->setEditTriggers(QAbstractItemView::NoEditTriggers); // 利用QFont设置字体加粗 QFont fontBold; fontBold.setBold(true); item1->setFont(fontBold); // 设置默认展开状态 ui.treeView->expandAll();



