🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 概述 QTreeWidget 的基类 常用函数 ``` // 排序 void QTreeView::​sortByColumn(int column, Qt::SortOrder order) // 在没有开启自动排序的情况下,也可以调用该函数进行一次性的条目排序。 void QTreeView::​setColumnHidden(int column, bool hide) //设置列隐藏或显示 bool QTreeView::​isColumnHidden(int column) const //判断列是否隐藏 void QTreeView::hideColumn(int column) //槽函数,隐藏指定列 void QTreeView::showColumn(int column) //槽函数,显示指定列 void QTreeView::​setColumnWidth(int column, int width) //设置列宽 int QTreeView::​columnWidth(int column) const //获取指定列的宽度 void QTreeView::​resizeColumnToContents(int column) //槽函数,自动调整 指定列的宽度 // 控制显示父子节点的缩进宽度 int indentation() const //获取父子节点的缩进宽度 void setIndentation(int i) //设置缩进宽度 void resetIndentation() //重置缩进宽度为默认值 // 折叠和展开槽函数 void collapseAll() //折叠所有子孙节点,这样只能看到顶级节点 void expandAll() //展开所有子孙节点,完全展开的树 void expandToDepth(int depth) //展开 depth 层级的子节点,负数展开所有 ``` ## 示例 ### 自定义行的 QTreeView Widget ``` #include <QApplication> #include <QTreeView> #include <QStandardItemModel> #include <QStandardItem> #include <QHBoxLayout> #include <QLabel> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 创建QTreeView和QStandardItemModel QTreeView treeView; QStandardItemModel model; treeView.setModel(&model); // 添加数据到model for (int row = 0; row < 5; ++row) { QStandardItem *item = new QStandardItem(""); model.setItem(row, 0, item); // 创建自定义widget QWidget *customWidget = new QWidget(); QHBoxLayout *layout = new QHBoxLayout(); // 添加文本到QLabel QLabel *label1 = new QLabel(QString("Label 1 %1").arg(row + 1)); QLabel *label2 = new QLabel("Label 2"); layout->addWidget(label1); layout->addWidget(label2); customWidget->setLayout(layout); treeView.setIndexWidget(model.index(row,0), customWidget); } treeView.show(); return a.exec(); } ```