QT QTreeView\QTreeWidget控件 使用详解
本文详细的介绍了QTreeView、QTreeWidget控件的各种操作,例如:新建界面、QTreeWidget、QTreeView、控件布局、设置列、设置宽高、设置列表头、设置复选框、设置图标、添加树、删除树、查找树、修改树、设置选中、树排序、事件、信号、槽函数、添加节点、默认选中、.h源文件、cpp源文件、其它文章等等操作。
实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既费时又费力。布局管理器可以完成两件事:自动调整控件的位置,包括控件之间的间距、对齐等;当用户调整窗口大小时,位于布局管理器内的控件也会随之调整大小,从而保持整个界面的美观。
本系列QT全面详解文章目前共有二十八篇高质量内容,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。
本文作者原创,转载请附上文章出处与本文链接。
QT QTreeView\QTreeWidget控件 使用详解目录
1 新建界面
2 QTreeWidget
2.1 控件布局
2.2 设置列
2.3 设置宽高
2.4 设置列表头
2.5 设置复选框
2.6 添加树
2.6.1 添加顶层项目
2.6.2 插入顶层项目
2.6.3 添加子项
2.7 删除树
2.7.1 删除子项目
2.7.2 删除顶级条目
2.8 查询树
2.8.1 查询对应条目
2.8.2 查询对应序号
2.9 树条目操作
2.9.1 当前选中行列
2.9.2 设置条目选中
2.9.3 设置选中行
2.9.4 设置选中列
2.9.5 当前选中行 上一个选中行
2.10 树排序
2.10.1 设置自动排序
2.10.2 升序降序
2.11 树查找
2.12 清空树
2.13 折叠树
2.14 展开树
2.15 滚动指定条目
2.16 树单击信号
2.17 树双击信号
2.18 树展开信号
2.19 树折叠信号
2.20 列数据变化信号
3 QTreeView
3.1 控件布局
3.2 添加节点
3.3 设置图标
3.4 设置checkBox
3.5 默认选中
3.6 单击信号
3.7 双击信号
1 新建界面
2 QTreeWidget
2.1 控件布局
QStringList topTitle; QTreeWidgetItem* treeWidgetItem_1; QTreeWidgetItem* treeWidgetItem_2; QTreeWidgetItem* treeWidgetItem_3; QTreeWidgetItem* treeItem_1; QTreeWidgetItem* treeItem_2; QTreeWidgetItem* treeItem_3; QStringList sTreeList_1,sTreeList_2,sTreeList_3; QStringList sTreeItemList_1,sTreeItemList_2,sTreeItemList_3; //创建项目 treeWidgetItem_1 = new QTreeWidgetItem(sTreeList_1); treeWidgetItem_2 = new QTreeWidgetItem(sTreeList_2); treeWidgetItem_3 = new QTreeWidgetItem(sTreeList_3); treeItem_1=new QTreeWidgetItem(sTreeItemList_1); treeItem_2=new QTreeWidgetItem(sTreeItemList_2); treeItem_3=new QTreeWidgetItem(sTreeItemList_3); sTreeList_1 setSortingEnabled(true);
2.10.2 升序降序
//ui->treeWidget->sortByColumn(1, Qt::SortOrder::AscendingOrder); //升序 //ui->treeWidget->sortByColumn(1, Qt::SortOrder::DescendingOrder); //降序
2.11 树查找
QString text = "顶级条目2-第2列"; Qt::MatchFlags flags; //ui->treeWidget->findItems(text, flags, 0); bool isEmpty = ui->treeWidget->findItems(text,Qt::MatchExactly).isEmpty(); qDebug() clear(); }
2.13 折叠树
//折叠控件 void MainWindow::on_pushButton_3_clicked() { ui->treeWidget->collapseItem(treeWidgetItem_1); }
2.14 展开树
//展开控件 void MainWindow::on_pushButton_4_clicked() { ui->treeWidget->expandItem(treeWidgetItem_1); }
2.15 滚动指定条目
//滚动到指定条目 void MainWindow::on_pushButton_5_clicked() { //void scrollToItem(const QTreeWidgetItem * item, QAbstractItemView::ScrollHint hint = EnsureVisible) }
2.16 树单击信号
void MainWindow::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column) { qDebug() setChild(2,1,item21); standardModel->item(0,0)->setChild(0,2,item02); standardModel->item(0,0)->setChild(1,2,item12); standardModel->item(0,0)->setChild(2,2,item22); QStandardItem *item2 = new QStandardItem(QIcon("D:/c.png"),"顶级条目-1"); standardModel->setItem(1,0,item2); QStandardItem *item200 = new QStandardItem("子条目0"); QStandardItem *item210 = new QStandardItem("子条目1"); QStandardItem *item220 = new QStandardItem("子条目2"); QStandardItem *item201 = new QStandardItem("1-0"); QStandardItem *item211 = new QStandardItem("1-1"); QStandardItem *item221 = new QStandardItem("1-2"); QStandardItem *item202 = new QStandardItem("1-0-0"); QStandardItem *item212 = new QStandardItem("1-1-1"); QStandardItem *item222 = new QStandardItem("1-2-2"); standardModel->item(1,0)->setChild(0,0,item200); standardModel->item(1,0)->setChild(1,0,item210); standardModel->item(1,0)->setChild(2,0,item220); standardModel->item(1,0)->setChild(0,1,item201); standardModel->item(1,0)->setChild(1,1,item211); standardModel->item(1,0)->setChild(2,1,item221); standardModel->item(1,0)->setChild(0,2,item202); standardModel->item(1,0)->setChild(1,2,item212); standardModel->item(1,0)->setChild(2,2,item222);
3.3 设置图标
QStandardItem *item2 = new QStandardItem(QIcon("D:/c.png"),"顶级条目-1");
3.4 设置checkBox
//设置节点带checkBox standardModel->item(0,0)->setCheckable(true); standardModel->item(0,0)->setCheckState(Qt::Checked);
3.5 默认选中
//设置默认选中第几行 QModelIndex index = standardModel->item(1,0)->index(); ui->treeView->setCurrentIndex(index);
3.6 单击信号
void MainWindow::on_treeView_clicked(const QModelIndex &index) { qDebug()