C++面试八股文(Qt 模型/视图)
1. Qt 的模型 / 视图(Model / View)架构是什么?
在 Qt 中,模型/视图架构是一种将数据、界面显示和用户交互分离的设计模式。其中 Model 负责数据的存储和管理,View 负责数据的展示,Delegate 负责数据的绘制和编辑。
模型和视图之间通过 信号与槽机制 自动同步,当模型中的数据发生变化时,视图会自动更新显示。这种架构可以让同一份数据被多个视图同时显示,提高代码的复用性和可维护性。
2. QAbstractItemModel 的作用是什么?
QAbstractItemModel 是 Qt 所有模型类的抽象基类,用于定义模型与视图交互的统一接口。
它规定了模型必须实现的基本函数,例如:
rowCount()columnCount()data()setData()index()parent()
通过继承 QAbstractItemModel,可以自定义任意结构的数据模型,供 QListView、QTableView、QTreeView 等视图使用。
3. QListView、QTableView、QTreeView 有什么区别?
- QListView用于显示一维列表数据只有行,没有列适合显示简单列表,如文件名列表、日志列表
- QTableView用于显示二维表格数据有行和列常用于表格数据,如配置表、数据库表
- QTreeView用于显示层级结构数据支持父子节点关系适合目录结构、组织结构、树形数据
三者的主要区别在于数据结构不同,但。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
C++八股文全集 文章被收录于专栏
本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。
查看13道真题和解析