当前位置: 首页 > news >正文

Qt的QAbstractTableModel

1.只有两列的
 

#pragma once#include <QAbstractTableModel>
#include <QObject>
class DistanceMeasureMeanModel : public QAbstractTableModel {Q_OBJECTpublic:DistanceMeasureMeanModel(QObject* parent = nullptr);~DistanceMeasureMeanModel();private:QVariant data(const QModelIndex& index, int role) const override;int columnCount(const QModelIndex& parent = {}) const override;int rowCount(const QModelIndex& parent = {}) const override;QVariant headerData(int section, Qt::Orientation orientation, int role) const override;public:/*** @brief 设置测距仪个数* @param count*/void setRangeCount(int count);/*** @brief 添加或更新一个测距仪的测量数据* @param rangefinderId 测距仪的ID (从1开始)* @param data 测量数据*/void addMeasureData(int rangefinderId, double data);void updateAllData(const QMap<int, double>& newData);private:// 内部数据存储: key是测距仪ID, value是对应的测量数据QMap<int, double> _meanData;// 用于将行号映射到测距仪ID的列表,以确保稳定的行顺序QList<int> _rowKeys;// 表头标题QStringList _headers;
};#include "pch.h"#include "DistanceMeasureMeanModel.h"DistanceMeasureMeanModel::DistanceMeasureMeanModel(QObject* parent)
{// 初始化表头_headers << "仪器" << "数值(mm)";
}DistanceMeasureMeanModel::~DistanceMeasureMeanModel()
{
}QVariant DistanceMeasureMeanModel::data(const QModelIndex& index, int role) const
{// 检查索引是否有效if (!index.isValid() || index.row() >= _rowKeys.size()) {return QVariant();}// 根据行号获取测距仪的IDint key = _rowKeys.at(index.row());// 处理不同角色switch (role) {case Qt::DisplayRole: {// 根据列号返回不同的数据switch (index.column()) {case 0: // 第一列:显示仪器名称return QString("测距仪 %1").arg(
http://www.dtcms.com/a/290259.html

相关文章:

  • 基于大数据的旅游推荐系统 Python+Django+Hive+Vue.js
  • 三大工厂设计模式
  • 电商项目_秒杀_初步分析
  • Django视图与路由系统
  • Jetpack ViewModel LiveData:现代Android架构组件的核心力量
  • echarts图铺满父元素
  • 在翻译语义相似度和会议摘要相似度评估任务中 ,分类任务 回归任务 生成任务区别
  • k8s查看某个pod的svc
  • Zookeeper 注册中心垂直介入
  • ZooKeeper学习专栏(四):单机模式部署与基础操作详解
  • 来伊份养馋记社区零售 4.0 上海首店落沪:重构 “家门口” 的生活服务生态
  • ZooKeeper学习专栏(三):ACL权限控制与Zab协议核心原理
  • Qt5线程相关事项
  • 使用 Tailwind CSS 控制元素在移动端不显示
  • 【Docker#3】Window 和 Linux 上 docker安装 相关知识
  • AWS IoT Core CloudWatch监控完整指南
  • Linux C 多线程基本操作
  • Product Hunt 每日热榜 | 2025-07-21
  • 2025最新版虚幻引擎5(UE5)入门教程:前言——你的随身教程和学习笔记
  • Freemarker实现下载word可能遇到的问题
  • 星游路-个人日志-学习积累法
  • 结构型模式-架构解耦与扩展实践
  • 遗像照片尺寸要求及手机制作打印方法
  • 【Java学习|黑马笔记|Day19】方法引用、异常(try...catch、自定义异常)及其练习
  • Linux程序构建核心:ELF文件编译、链接与加载机制详解
  • 隧道代理的动态IP切换机制与实现原理
  • WPF——自定义ListBox
  • 洛谷 P10723 [GESP202406 七级] 黑白翻转-普及+/提高
  • 机器学习week3-分类、正则化
  • FFmpeg:数字媒体的终极瑞士军刀