modelex.cpp

#include "modelex.h"ModelEx::ModelEx(QObject *parent) : QAbstractTableModel(parent)
{armyMap[1] = tr("空军");armyMap[2] = tr("海军");armyMap[3] = tr("陆军");armyMap[4] = tr("海军陆战队");weaponTypeMap[1] = tr("轰炸机");weaponTypeMap[2] = tr("战斗机");weaponTypeMap[3] = tr("航空母舰");weaponTypeMap[4] = tr("驱逐舰");weaponTypeMap[5] = tr("直升机");weaponTypeMap[6] = tr("坦克");weaponTypeMap[7] = tr("两栖攻击舰");weaponTypeMap[8] = tr("两栖战车");populateModel();
}ModelEx::~ModelEx()
{
}int ModelEx::rowCount(const QModelIndex &) const
{return army.size();
}int ModelEx::columnCount(const QModelIndex &) const
{return 3;
}QVariant ModelEx::data(const QModelIndex &index, int role) const
{if (!index.isValid())return QVariant();if (role == Qt::DisplayRole){switch (index.column()) {case 0:return armyMap[army[index.row()]];break;case 1:return weaponTypeMap[weaponType[index.row()]];break;case 2:return weapon[index.row()];break;default:return QVariant();break;}}return QVariant();
}QVariant ModelEx::headerData(int section, Qt::Orientation orientation, int role) const
{if (role == Qt::DisplayRole && orientation == Qt::Horizontal)return header[section];return QAbstractTableModel::headerData(section, orientation, role);
}void ModelEx::populateModel()
{header << tr("军种") << tr("种类") << tr("武器");army << 1 << 2 << 3 << 4 << 2 << 4 << 3 << 1;weaponType << 1 << 3 << 5 << 7 << 4 << 8 << 6 << 2;weapon << tr("B-2") << tr("尼米兹级") << tr("阿帕奇") << tr("黄蜂级")<< tr("阿利伯克级") << tr("AAAV") << tr("M1A1") << tr("F-22");
}

modelex.h

#ifndef MODELEX_H
#define MODELEX_H#include <QWidget>
#include <QAbstractTableModel>
#include <QVector>
#include <QMap>
#include <QStringList>class ModelEx : public QAbstractTableModel
{Q_OBJECTpublic:explicit ModelEx(QObject *parent = nullptr);~ModelEx();virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;QVariant data(const QModelIndex &index, int role) const;QVariant headerData(int section, Qt::Orientation orientation, int role) const;private:QVector<short> army;QVector<short> weaponType;QMap<short, QString> armyMap;QMap<short, QString> weaponTypeMap;QStringList weapon;QStringList header;void populateModel();
};
#endif // MODELEX_H

main.cpp

#include "modelex.h"#include <QApplication>
#include <QTableView>int main(int argc, char *argv[])
{QApplication a(argc, argv);ModelEx modelEx;QTableView view;view.setModel(&modelEx);view.setWindowTitle(QObject::tr("modelEx"));view.resize(400, 400);view.show();return a.exec();
}

效果图:

Qt 6.3.1 模型相关推荐

  1. Qt中的自定义模型类

    文章目录 1 Qt中的通用模型类 1.1 Qt中的通用模型类 1.2 Qt中的变体类型QVariant 2 自定义模型类 2.1 自定义模型类设计分析 2.2 自定义模型类数据层.数据表示层.数据组织 ...

  2. QT的OpenGL进行模型的3D展示

    QT的OpenGL进行模型的3D展示 由于项目需要,我需要实现一个模型3D展示的功能.这里采用的是QT的OpenGL进行实现(无材质!!!). 由于本人也是第一次接触这方面知识,所以这里就将自己的学习 ...

  3. C++Qt开发——Mode View(模型视图)

    Model/View(模型/视图)结构 简介 Model/View(模型/视图)结构是 Qt 中用界面组件显示与编辑数据的一种结构,视图(View)是显示和编辑数据的界面组件,模型(Model)是视图 ...

  4. Qt+OpenVino部署yolo5模型

    一.openvino简介 OpenVINO是英特尔针对自家硬件平台开发的一套深度学习工具库,包含推断库,模型优化等等一系列与深度学习模型部署相关的功能. OpenVINO™工具包是用于快速开发应用程序 ...

  5. Qt 之 事件总线模型

    文章目录 Qt 之 开源事件总线模块 libgitlevtbus 模型 模块 Event EventBus Module ModuleDelegate TestCase Qt 之 开源事件总线模块 l ...

  6. Qt MVC之自定义模型

    Qt中所有模型都是基于QAbstractItemModel派生的.当数据改变时,模型发出信号通知视图.为了保证数据的存取和表示分离,InterView 引入了模型索引(Model Index)的概念. ...

  7. Qt工作笔记-自定义模型【继承QAbstractTableModel】

    程序运行截图如下: 代码如下: mymodel.h #ifndef MYMODEL_H #define MYMODEL_H#include <QAbstractTableModel> #i ...

  8. Qt Model/View(MVD)模型分析

           最近在看Qt的Model/View Framework,在网上搜了搜,好像中文的除了几篇翻译没有什么有价值的文章.E文的除了Qt的官方介绍,其它文章也很少.看到一个老外在blog中写道M ...

  9. Qt工作笔记-视图/模型以及过滤代理模型的使用

    程序运行截图如下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>class QSortFilterP ...

最新文章

  1. 如何实现立体的DataGrid和具有Windows效果的图片按钮
  2. Science组合图表解读
  3. DVWA系列之1 环境搭建
  4. 前Citrix CTO认为虚拟化将解决现有的安全问题
  5. python常用的集成开发环境和编辑器有哪些_常用的几款Python集成开发环境或者编辑器详解...
  6. 前K个高频元素(top k)(TX)
  7. java编写系统登录界面_java 登陆界面怎么写,连接数据库后
  8. linux中查看进程
  9. 【转载】在.NET环境中实现每日构建--NAnt篇
  10. Vim编辑器显示行号且定义tab键为4个空格
  11. java财务对账系统设计_对账系统设计
  12. 全球地区选择,支持中英文切换。国家-省市-城市-地区
  13. mysql创建数据库格式,MySQL 创建数据库的简单示例(utf-8格式)
  14. A股永远3000点?量化指数增强策略,轻松多涨10倍。附代码【邢不行】
  15. trueOS能装linux软件,TrueOS 17.12发布下载,一款基于FreeBSD的桌面Linux系统
  16. You have not concluded your cherry-pick
  17. 智能汽车进入HPC时代,这家本土芯片厂商如何领跑市场
  18. python epub 精品_如何利用Python打包HTML页面为epub?
  19. bilibili杨宙:效能之上,高效交付
  20. Java 获取当前年,前几年(之前年),后几年(之后年)

热门文章

  1. 恶俗:或现代文明的种种愚蠢读后感
  2. 0604、nginx问题处理、
  3. 数学通道的应用(三)-ABS传感器计算车速
  4. Dell 灵越5775 安装CentOS 7(已安装Windows系统)
  5. 300套商务ppt下载模板
  6. Flutter之fvm管理版本
  7. C语言防止非法字符输入——ret的用法
  8. Tomcat 实用安装教程
  9. nginx location 配置中 try_files, alias, root, index 的
  10. 教你用JavaScript制作小日历