使用C++语言实现,QTreeView两级目录,第一级目录为“111”,第二级目录为“222”,节点可收缩或展开,QTreeView的表头为“项目”和“类型”
时间: 2024-02-25 19:53:18 浏览: 82
QTreeview树结构完美可自由拖拽节点模型
好的,这是一个关于使用Qt框架中的QTreeView控件的问题,下面是一个简单的实现方法:
1. 创建Qt项目并在mainwindow.h中添加如下代码:
```c++
#include <QMainWindow>
#include <QStandardItemModel>
#include <QTreeView>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
private:
QStandardItemModel *m_model;
QTreeView *m_treeView;
};
```
2. 在mainwindow.cpp中实现MainWindow类的构造函数,以及添加两级目录和表头:
```c++
#include "mainwindow.h"
#include <QHeaderView>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
// 创建模型
m_model = new QStandardItemModel(this);
// 添加第一级目录
QStandardItem *rootItem = m_model->invisibleRootItem();
QStandardItem *item1 = new QStandardItem("111");
rootItem->appendRow(item1);
// 添加第二级目录
QStandardItem *item2 = new QStandardItem("222");
item1->appendRow(item2);
// 创建TreeView并设置模型
m_treeView = new QTreeView(this);
m_treeView->setModel(m_model);
// 设置表头
QStringList headerLabels;
headerLabels << "项目" << "类型";
m_model->setHorizontalHeaderLabels(headerLabels);
m_treeView->header()->setDefaultAlignment(Qt::AlignLeft);
m_treeView->header()->setStretchLastSection(true);
// 设置窗口布局
setCentralWidget(m_treeView);
setWindowTitle("QTreeView Example");
resize(400, 300);
}
```
3. 运行程序,可以看到一个带有两级目录和表头的QTreeView控件。
注意:本示例中的代码只是一个简单的实现,如果需要更多的功能和交互细节,可以根据具体需求进行修改。
阅读全文