Qt25模型-QAbstractTableModel

模型-QAbstractTableModel

  • 知识点
  • modelex
    • modelex.h
    • modelex.cpp
  • main.cpp
  • 运行图

知识点

   //虚函数声明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;view.setModel(&modelEx);设置模型

modelex

modelex.h

#ifndef MODELEX_H
#define MODELEX_H
#include <QAbstractTableModel>
#include <QVector>
#include <QMap>
#include <QStringList>class ModelEx : public QAbstractTableModel
{
public:explicit ModelEx(QObject *parent = 0);//虚函数声明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;
signals:public slots:private:QVector<short> army;QVector<short> weaponType;QMap<short,QString>armyMap;QMap<short,QString>weaponTypeMap;QStringList weapon;QStringList header;void populateModel();};
#endif // MODELEX_H

modelex.cpp

#include "modelex.h"ModelEx::ModelEx(QObject *parent):QAbstractTableModel(parent)
{armyMap[1] = tr("空军");armyMap[2] = tr("海军");armyMap[3] = tr("陆军");armyMap[4] = tr("海军和陆军");armyMap[5] = tr("海军和陆军2");weaponTypeMap[1] = tr("轰炸机");weaponTypeMap[2] = tr("战斗机");weaponTypeMap[3] = tr("坦克");weaponTypeMap[4] = tr("飞机");weaponTypeMap[5] = tr("炮弹");weaponTypeMap[6] = tr("舰艇");populateModel();}int ModelEx::rowCount(const QModelIndex &parent) const
{return army.size();
}int ModelEx::columnCount(const QModelIndex &parent) const
{return 4;
}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;case 3:return weapon[index.row()];break;default:return QVariant();}}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("武器")<<tr("武器1");army<<1<<2<<3<<4<<2<<4<<3<<1;weaponType<<1<<3<<5<<6<<2<<5<<2<<5;weapon<<tr("B-2")<<tr("普通")<<tr("特殊")<<tr("高级")<<tr("困难")<<tr("复杂")<<tr("困难2")<<tr("复杂2");
}

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("使用模型"));view.resize(400,400);view.show();return a.exec();
}

运行图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1523452.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

linux之网络子系统-MAC帧、数据报、段 的头部信息

一、MAC帧 格式 MAC帧是属于链路层&#xff0c;网卡发送数据的格式。 MAC帧主要有两种格式&#xff0c;一种是以太网V2标准&#xff0c;一种是IEEE 802.3&#xff0c;常用的是前者。 DMAC&#xff08;Destination MAC&#xff09;是目的MAC地址。DMAC字段长度为6个字节&#…

代码随想录算法训练营_day34

题目信息 62. 不同路径 题目链接: https://leetcode.cn/problems/unique-paths/description/题目描述: 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角…

STM32G474之TIM1更新中断

STM32G474之TIM1能产生如下的中断&#xff1a; 1、捕获比较1个事件&#xff08;Capture compare 1 event&#xff09; 用来获取“捕获输入脉冲的时间”&#xff0c;其次用来输出“比较输出波形”&#xff1b; 2、捕获比较2个事件&#xff08;Capture compare 2 event&#x…

opencv实战项目十九:透射变换倾斜二维码校正

文章目录 前言一、实现方法二、实现代码三&#xff0c;效果 前言 随着科技的飞速发展&#xff0c;二维码作为一种信息载体&#xff0c;已经广泛应用于我们的日常生活中。无论是支付、身份验证还是信息传播&#xff0c;二维码都发挥着不可替代的作用。然而&#xff0c;在实际应…

TeamTalk消息服务器(群组相关)

具体的流程如下介绍&#xff0c;后续需要着重研究数据库相关表的结构设计。 群组信令和协议设计 enum GroupCmdID {CID_GROUP_NORMAL_LIST_REQUEST 1025,CID_GROUP_NORMAL_LIST_RESPONSE 1026,CID_GROUP_INFO_REQUEST 1027,CID_GROUP_INFO_RESPONSE 1028,// ...... 暂时省…

【Python】一文详细向您介绍 bisect_left 函数

【Python】一文详细向您介绍 bisect_left 函数 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#x…

项目管理:项目经理如何才能做好时间管理?

在项目管理中&#xff0c;时间管理是至关重要的环节。作为项目经理&#xff0c;有效的时间管理不仅关乎个人工作效率&#xff0c;更直接影响到项目的整体进度、成本控制和质量保证。 以下是一些建议&#xff0c;帮助项目经理更好地进行时间管理&#xff1a; 一、明确项目目标…

做Ozon的挣钱逻辑,选择高客单高利润的4点原因

以下是选择高客单高利润产品在 Ozon 上销售的四点原因&#xff1a; 一、利润空间更可观 高客单价产品单个利润高&#xff1a;比如销售一件高客单价的高端电子产品&#xff0c;其利润可能是低客单价产品的数倍甚至更多。假设一件低客单价的普通日用品利润为 5 元&#xff0c;而…

2024年9月7日(星期六)骑行滑草场

2024年9月7日 (星期六) 骑行滑草场&#xff0c;早8:30到9:00&#xff0c; 郊野公园西门集合&#xff0c;9:00准时出发【因迟到者&#xff0c;骑行速度快者&#xff0c;可自行追赶偶遇。】 偶遇地点:郊野公园西门集合 &#xff0c;家住东&#xff0c;南&#xff0c;北的骑友在…

护眼灯真的可以保护眼睛吗?曝光劣质护眼台灯常见的三个特征

护眼灯真的可以保护眼睛吗&#xff1f;随着时代的发展&#xff0c;我们注意到越来越多的孩子开始佩戴眼镜。这一趋势引起了许多细心家长的关注&#xff0c;他们认识到这不仅是个别情况&#xff0c;而是现代生活方式和环境对孩子视力健康的挑战。自然而然地&#xff0c;“儿童是…

springboot名著阅读网站

基于 springbootvue实现的名著阅读网站&#xff08;源码L文ppt&#xff09;4-035 4 系统设计 4.1 系统概述 名著阅读网站的设计与开发是指对该系统的各个功能模块进行详细设计&#xff0c;力求每个模块都能够满足用户的要求&#xff0c;系统开发完成后还需对系统进行单元…

C语言 ——— #define 定义宏

目录 何为宏 宏的声明及其使用方式 宏中的括号是否多余 何为宏 #define 机制包括了一个规定&#xff0c;允许把参数替换到文本中&#xff0c;这种实现通常称宏 宏的声明及其使用方式 声明代码演示&#xff1a; #define MAX(x,y) ((x)>(y)?(x):(y)) 使用代码演示&a…

第66期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

xxe漏洞靶场实战通过

1、用nmap扫描C段&#xff0c;找到靶场 2、打开网址&#xff0c;查看robots.txt文件 3、发现有两个目录&#xff0c;分别查看发现一个登录页面 4、使用BP抓包&#xff0c;发现是xml类型 5、尝试查看/etc/passwd 文件&#xff0c;在尝试查看xxe.php文件&#xff0c;发现是编码后…

VXLAN 为何采用UDP

VXLAN 简介 VXLAN是一种网络虚拟化技术&#xff0c;它通过在UDP数据包中封装MAC地址和IP信息&#xff0c;使得二层网络&#xff08;如以太网&#xff09;能够跨越三层网络&#xff08;如IP网络&#xff09;进行扩展。这种封装方式不仅支持TCP流量的传输&#xff0c;还能有效处…

合宙LuatOS开发板Core_Air780EP使用说明

Core-Air780EP 开发板是合宙通信推出的基于 Air780EP 模组所开发的&#xff0c; 包含电源&#xff0c;SIM卡&#xff0c;USB&#xff0c;天线&#xff0c;音频等必要功能的最小硬件系统。 以方便用户在设计前期对 Air780EP模块进行性能评估&#xff0c;功能调试&#xff0c;软…

辞职一年赚了50w才知道:上班真的不赚钱。

不知不觉就进入九月了&#xff0c;一年一度的苹果秋季发布会又准备开始了。 听说今年iPhone系列有重磅升级&#xff0c;会搭载苹果智能 「Apple Intelligence」&#xff0c;搓搓手等着以旧换新了&#xff01; 此前iPhone15 pro max系列用户已经可以享受部分AI功能&#xff0c;…

【C++模板初阶】

文章目录 一、泛型编程二、函数模板1.函数模板概念2.函数模板格式3.函数模板的原理4 函数模板的实例化1. 隐式实例化2. 显式实例化不同类型形参传参时的处理 5.模板参数的匹配原则 三、类模板1 类模板的定义格式2 类模板的实例化 一、泛型编程 首先大家先思考一个问题&#xff…

文字转视频软件哪个好用?揭秘创意新工具

最近&#xff0c;我在筹备一个小型的个人项目&#xff0c;需要制作一系列的教学视频&#xff0c;但我对视频编辑一窍不通。就在我快要放弃的时候&#xff0c;我发现了一些神奇的工具&#xff0c;它们能自动把文字变成视频&#xff01; 想知道自动生成视频的软件有哪些吗&#…

nginx配置白名单服务

http { # 其他配置… # 定义一个名为 whitelist 的共享内存区域 limit_zone whitelist $binary_remote_addr 10m;server {listen 80;server_name example.com;# 白名单配置location / {# 设置只允许特定 IP 访问allow 192.168.1.100; # 允许的 IPallow 192.168.1.10…