网站首页 > 技术文章 正文
InterView框架提供了一些可以直接使用的模型类和视图类,如?QStandardItemModel???类、??QDirModel???类、??QStringListModel???类,以及??QColumnView类???、??QHeaderView类???、??QListView???类、??QTableView???类和??QTreeView??类等。
1、效果展示
2、具体代码
#include "dirmodeex.h"
#include <QApplication>
#include <QAbstractItemModel>
#include <QAbstractItemView>
#include <QItemSelectionModel>
#include <QDirModel>
#include <QTreeView>
#include <QListView>
#include <QTableView>
#include <QSplitter>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDirModel model; //(a)
/*新建三种不同的View对象,以便文件目录可以以三种不同的方式显示*/
QTreeView tree;
QListView list;
QTableView table;
tree.setModel(&model); //(b)
list.setModel(&model);
table.setModel(&model);
tree.setSelectionMode(QAbstractItemView::MultiSelection); //(c)
list.setSelectionModel(tree.selectionModel()); //(d)
table.setSelectionModel(tree.selectionModel()); //(e)
QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),&list,SLOT(setRootIndex(QModelIndex))); //(f)
QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),&table,SLOT(setRootIndex(QModelIndex)));
QSplitter *splitter = new QSplitter;
splitter->addWidget(&tree);
splitter->addWidget(&list);
splitter->addWidget(&table);
splitter->setWindowTitle(QObject::tr("Model/View"));
splitter->show();
return a.exec();
}
注意:
QT开发交流+赀料君羊:714620761
(a):???QDirModel model;???新建一个QDirModel对象,为数据访问做准备。QDirModel的创建还可以设置过滤器,即只有符合条件的文件或目录才可被访问。
(b):???tree.setModel(&model);???调用??setModel()???函数设置View对象的Model为QDirModel对象的model。
?:???tree.setSelectionMode(QAbstractItemView::MultiSelection);???设置QTreeView对象的选择方式为多选。
QAbstractItemView提供五种选择模式,即???QAbstractItemView::SingleSelection???、??QAbstractItemView::NoSelection???、??QAbstractItemView::ContiguousSelection???、??QAbstractItemView::ExtendedSelection???和??QAbstractItemView::MultiSelection???。
(d):???list.setSelectionModel(tree.selectionModel());???设置QListView对象与QTreeView对象使用相同的模型
(e):???table.setSelectionModel(tree.selectionModel());???设置QTableView对象与QTreeView对象使用相同的模型
(f):为了实现双击QTreeView对象中的某个目录时,QListView对象和QTableView对象中显示此选定目录下的所有文件和目录,需要连接QTreeView对象的???doubleClicked()???信号与QListView对象和QTableView对象的??setRootIndex()??槽函数。
猜你喜欢
- 2024-10-20 Qt 开发经验总结 qt软件开发
- 2024-10-20 Qt QTableWidget用法总结 qtablewidget qtableview
- 2024-10-20 实战PyQt5: 068-MV框架中的项视图部件
- 2024-10-20 Qt开发经验小技巧231-235 qt开发入门简介
- 2024-10-20 Python+PyQt5进阶(5) pyqt5 django
- 2024-10-20 Qt项目升级到Qt6经验总结 qt更新界面
- 2024-10-20 QTableWidget表格中增删数据 qtablewidget清空表格
- 2024-10-20 C/C++ Qt StatusBar 底部状态栏应用
- 2024-10-20 Qt的常用控件 qt控件详解
- 2024-10-20 Python PyQt5通过QTableWidget表格控件操作SQLite数据库
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)