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

3 实现步骤
- 初始化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();
}
- 读取文件数据并将每行数据添加到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

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

被折叠的 条评论
为什么被折叠?



