C++面试八股文(Qt 模型/视图)

1. Qt 的模型 / 视图(Model / View)架构是什么?

在 Qt 中,模型/视图架构是一种将数据、界面显示和用户交互分离的设计模式。其中 Model 负责数据的存储和管理,View 负责数据的展示,Delegate 负责数据的绘制和编辑。

模型和视图之间通过 信号与槽机制 自动同步,当模型中的数据发生变化时,视图会自动更新显示。这种架构可以让同一份数据被多个视图同时显示,提高代码的复用性和可维护性。

2. QAbstractItemModel 的作用是什么?

QAbstractItemModel 是 Qt 所有模型类的抽象基类,用于定义模型与视图交互的统一接口。

它规定了模型必须实现的基本函数,例如:

  • rowCount()
  • columnCount()
  • data()
  • setData()
  • index()
  • parent()

通过继承 QAbstractItemModel,可以自定义任意结构的数据模型,供 QListViewQTableViewQTreeView 等视图使用。

3. QListView、QTableView、QTreeView 有什么区别?

  • QListView用于显示一维列表数据只有行,没有列适合显示简单列表,如文件名列表、日志列表
  • QTableView用于显示二维表格数据有行和列常用于表格数据,如配置表、数据库表
  • QTreeView用于显示层级结构数据支持父子节点关系适合目录结构、组织结构、树形数据

三者的主要区别在于数据结构不同,但

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++八股文全集 文章被收录于专栏

本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。

全部评论
点赞 回复 分享
发布于 02-03 09:08 上海
蹲个面经
点赞 回复 分享
发布于 02-02 13:09 上海

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务