Qt 模型视图 - QTreeWidget(3)

该文介绍了如何在Qt环境中使用QTreeWidget类创建一个类似WPS导航窗格的书签界面。通过设置控件属性,加载样式表,读取文件数据并解析,实现了书签的层级结构。同时,提供了添加和删除书签的功能实现。

1 简述

  • 在实际开发中可能会用到类似树型控件的需求,在Qt中QTreeWidget是一个方便的类,它提供了一个标准的树形小部件,带有一个经典的基于项目的接口。这个类基于Qt的模型/视图架构,并使用一个默认模型来保存项目,每个项目都是一个QTreeWidgetItem。
  • 本节模仿WPS导航窗格中书签的界面,用QTreeWidget实现其大概的界面。

开发环境

  • 系统:Window10
  • Qt版本:5.14.2
  • 编译器:MinGW_64

2 实现效果

在这里插入图片描述 在这里插入图片描述

3 实现步骤

  1. 初始化QTreeWidget数据
ui->treeWidget->setHeaderHidden(true);
ui->treeWidget->setColumnCount(1);
ui->treeWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
ui->treeWidget->setDragEnabled(true);
ui->treeWidget->setDragDropMode(QAbstractItemView::InternalMove);
ui->treeWidget->setEditTriggers(QAbstractItemView::DoubleClicked);
ui->treeWidget->viewport()->setAcceptDrops(true);
ui->treeWidget->setDropIndicatorShown(true);
ui->treeWidget->setFocusPolicy(Qt::NoFocus);

QFile file(":/res/style.qss");
if (file.open(QFile::ReadOnly)) {
   
   
    QString qss = file.readAll();
    this->setStyleSheet(qss);
    file.close();
}
  1. 读取文件数据并将每行数据添加到QTreeWidget
void Widget::initTreeData()
{
   
   
    QFile file(":/res/bookmark.txt");
    if (!file.open(QFile::ReadOnly)) {
   
   
        qInfo() << "文件打开失败!";
        return;
    }
    QString line;
    QStringList rowList;
    while (!file.atEnd()) {
   
   
        line = file.readLine();
        rowList.append
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值