QT视图界面

发布时间:2026/5/16 6:07:09

QT视图界面 先一句话说清楚Qt 里没有直接叫 QView 的类所有“视图”都继承自 QAbstractItemView常用的有 4 种标准 View外加对应的“便捷 Widget”。下面直接给你面试版总结 代码小例子。一、四大标准 ViewModel/View 架构都在 #include QXXXView数据和界面分离可以共用 Model。1. QListView —— 列表/图标视图一维数据单列列表、图标列表。典型文件列表、联系人列表。2. QTableView —— 表格视图二维数据行列像 Excel。典型数据库查询结果、表格数据。3. QTreeView —— 树形视图层级/树状数据可折叠展开。典型文件系统、目录树、层级菜单。4. QColumnView —— 多列级联视图像 Mac Finder 那种每级一列。典型多级目录选择。关系一句话• 基类QAbstractItemView• 四大子类QListView / QTableView / QTreeView / QColumnView• 配套Model数据 Delegate渲染/编辑二、对应的“便捷 Widget”不分离 Model/View新手常混面试最好区分• QListView → QListWidget• QTableView → QTableWidget• QTreeView → QTreeWidget特点• 内部自带 Model不用自己写 Model直接 addItem。• 缺点不能共享 Model、灵活性差。三、极简代码示例面试可写1QListView QStringListModel标准用法QListView *listView new QListView(this);QStringListModel *model new QStringListModel(this);model-setStringList({Apple,Banana,Cherry});listView-setModel(model);2QTableView QStandardItemModelQTableView *tableView new QTableView(this);QStandardItemModel *model new QStandardItemModel(2,2,this);model-setItem(0,0,new QStandardItem(Name));model-setItem(0,1,new QStandardItem(Age));tableView-setModel(model);3QTreeView QStandardItemModelQTreeView *treeView new QTreeView(this);QStandardItemModel *model new QStandardItemModel(this);QStandardItem *root model-invisibleRootItem();QStandardItem *node new QStandardItem(Folder);node-appendRow(new QStandardItem(file.txt));root-appendRow(node);treeView-setModel(model);四、面试一句话总结背这个Qt 的 View 都继承自 QAbstractItemView常用有 QListView、QTableView、QTreeView、QColumnView它们遵循 Model/View 架构数据和界面分离可共享 Model。另外还有便捷类 QListWidget/QTableWidget/QTreeWidget内部自带 Model适合简单场景。要不要我给你画一张“View → 便捷Widget → 适用场景”的速记表面试前看一眼就记住

相关新闻