Qt笔记——QTreeView树状目录基本使用方法

2023-05-16

Qt自带了QTreeView控件用于树形菜单的展示,记录基本的使用方法。

一、在QT设计师中拖入一个QTreeView控件

二、代码

// 1、用model管理数据与视图的关系
QStandardItemModel* model = new QStandardItemModel(ui.treeView); //创建模型指定父类
model->setHorizontalHeaderLabels(QStringList() << "Title"); // 设置表头
​
QStringList primaryTitle;
QStringList secondaryTitle;
QList<int> 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<QStandardItem*> items1;
    QStandardItem* item1 = new QStandardItem(subprimaryTitle);
    //item1->setFont(fontChoose);
    items1.append(item1);
    model->appendRow(items1);
​
    //二级节点
    for (int i2 = 0; i2 < titleLength[i1]; i2++){
        QList<QStandardItem*> 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();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt笔记——QTreeView树状目录基本使用方法 的相关文章

  • QT笔记- 设置QFileSystemModel在QTreeView中显示,显示指定目录及文件名或类型过滤

    示例 ui gt setupUi this model 61 new QFileSystemModel ui gt treeView 无论下面filter和view怎样设置 这条path上的文件夹都必显示 model gt setRootP
  • QTreeView节点拖放

    拖放操作分为拖动 Drag 和放置 Drop 两种操作 xff0c 当拖动时需要把拖动的数据进行存储 称为编码 xff0c 数据存储为QMimeData类型的对象 称为放置数据 xff0c 当执行放置操作时需要把存储的数据读取出来 称为解码
  • PyQt5打开文件目录(QTreeView)并在QT界面输出文件目录并双击文件返回文件目录名

    最近发现了一个挺厉害的人工智能学习网站 内容通俗易懂 风趣幽默 感兴趣的可以点击此链接进行查看 床长人工智能教程 废话不多说 请看正文 打开整个文件目录 直接打开电脑的各个文件目录 显示出c盘 d盘等 如下图所示 代码如下 import s
  • 更改 QTreeView 的行背景颜色不起作用

    我有一个QTreeView并希望根据行的内容使用不同的背景颜色 为了实现这一目标 我导出了一个class MyTreeView from QTreeView并实现了paint方法如下 void MyTreeView drawRow QPai
  • PyQt 中支持拖放的 QTreeView

    在 PyQt 4 中 我想创建一个 QTreeView 可以通过拖放操作重新组织其结构 我已经为 QTreeView 实现了自己的模型 QAbstractItemModel 因此我的 QTreeView 可以正确显示数据 现在我想添加对树节
  • Python:PyQt QTreeview 示例 - 选择

    我正在使用 Python 2 7 和 Qt 设计器 并且我是 MVC 新手 我在 Qt 中完成了一个视图 为我提供了目录树列表 以及用于运行事物的控制器 我的问题是 给定 Qtree 视图 选择目录后如何获取目录 代码快照如下 我怀疑它是
  • 如何扩展顶级QTreeview项目

    我不明白为什么这似乎没有扩展 QTreeView 中的顶级根项目 clear existing treeview data model self treeview model sourceModel model clear add tree
  • qt:pyqt:QTreeView内部拖放几乎可以工作...拖动的项目消失

    I almost在 QTreeView 中具有完全有效的拖放重新排序功能 一切似乎都很好 除了掉落的物体永远不会出现 尽管我可以通过多种不同的方式引用它 向我证明它确实存在于它应该在的地方 如果有人有时间可以运行以下代码并让我知道我做错了什
  • 了解 Qt 视图模型架构:何时创建以及如何清理 QAbstractItemModel 实现中的索引?

    我目前正在将我的项目从QTreeWidget to QtreeView 并且有很多由于对Qt模型视图设计理解不佳而导致的问题 到目前为止 即使在 Qt 示例中我也找不到答案 我已经实现了我的QAbstractItemModel 我正在返回要
  • 何时从 QAbstractItemModel 发出 dataChanged

    在 Qt 中 我有一个模型子类化QAbstractItemModel 它是显示在 QTreeView 中的树 该模型支持各种形式的更改 并且都可以正常工作 相关的两个是 1 少量相关行中的部分数据发生变化 2 可视化更改意味着大多数行应更改
  • QMimeData 中的 Python 对象

    我正在基于我的自定义模型实现拖放 QTreeView 一切正常 我的树显示数据 启用了拖放 现在最后一步就在我面前 放置和传输拖动的数据 为此 我需要在模型中实现 mimeTypes mimeData 和 dropMimeData 方法 现
  • (PyQt) QTreeView - 想要展开/折叠所有子级和孙级

    我希望能够展开或折叠 QTreeView 中特定分支的所有子级 我正在使用 PyQt4 我知道 QTreeView 有一个绑定到 的展开所有子项功能 但我需要两件事 它需要绑定到不同的组合键 shift space 我还需要能够折叠所有子项
  • 我可以在aspx页面的page_load事件之前调用用户控件的page_load事件吗?

    问题很简单 我可以在aspx页面的page load之前调用usercontrol的page load吗 EDIT 不可能在父级的 page load 之前调用子级的 page load 事件 我有一个名为 just4test 的 aspx
  • 以“融合”风格从 QTreeView 中删除蓝色选择

    我有一个QTreeView带有定义选择的样式表 但是 当我使用 融合 样式时 装饰上方有一个额外的蓝色选择矩形 我尝试过使用show decoration selected 0 在样式表中 以及设置setAllColumnsShowFocu
  • QAbstractItemModel 和 QTreeView [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要在 QtreeView 中显示
  • 在 QTreeView 中设置粗体行

    我在 pyqt 应用程序中有一个 QTreeView 的自定义子类 我试图让用户能够突出显示和 低亮 由于缺乏更好的术语 行 突出显示的行应具有粗体文本和 可选 不同的背景颜色 有任何想法吗 我正在考虑将样式表作为一种选择 但到目前为止还无
  • QTreeView 中某些索引的自定义文本颜色

    我想使用自定义颜色 取决于与每行相关的数据 在 QTreeView 小部件的一列中绘制文本 我尝试重载 drawRow 受保护方法并更改样式选项参数 如下所示 一个精简示例 virtual void drawRow QPainter p p
  • QT:QFileSystemModel _q_fileSystemChanged 插槽在 UI 线程上执行,这与文档相矛盾

    我的 UI 使用 QTreeView 和 QFileSystemModel 来选择文件夹和文件 QFileSystemModel 的文档说文件结构更新是在单独的线程上完成的 这意味着 UI 不会被阻塞 然而 对我来说情况并非如此 我无法弄清
  • 多级QTreeView

    我很难理解如何使用 QTreeView 和 QStandardItemModel 设置多级 QTree 这是我所拥有的 from PySide QtGui import import sys class MainFrame QWidget
  • python 在单击的 QTreeview 项目复选框上发出信号已更改

    当树视图项目的复选框发生更改时 如何发出信号 import sys from PySide import QtGui QtCore class Browser QtGui QDialog def init self parent None

随机推荐