• modellex.h

     #ifndef MODELEX_H
    #define MODELEX_H
    #include <QAbstractItemModel>
    #include <QVector>
    #include <QMap>
    #include <QStringList>
    #include <QWidget> class modelex : public QAbstractTableModel
    { public:
    explicit modelex(QObject *parent = ); 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<int> army;
    QVector<int> weapon;
    QMap<int,QString> armymap;
    QMap<int,QString> weaponmap; QStringList weaponlist;
    QStringList armylist;
    QStringList header; void showModel();
    }; #endif // MODELEX_H
  • modelex.cpp
     #include "modelex.h"
    
     modelex::modelex(QObject *parent):QAbstractTableModel(parent)
    {
    armymap[] ="空军";
    armymap[] ="海军";
    armymap[] ="陆军"; weaponmap[] = "AK47";
    weaponmap[] = "M16";
    weaponmap[] = "M18";
    showModel();
    } int modelex::rowCount(const QModelIndex &parent) const
    {
    return army.size();//行数
    } int modelex::columnCount(const QModelIndex &parent) const
    {
    return ;//列数
    } //返回每一行每一列的数据
    QVariant modelex::data(const QModelIndex &index, int role) const
    {
    if(!index.isValid())
    {
    return QVariant();
    }
    if(role == Qt::DisplayRole)
    {
    switch(index.column())
    {
    case :
    return armymap[army[index.row()]];
    break;
    case :
    return armymap[weapon[index.row()]];
    break;
    default:
    return QVariant();
    } }
    return QVariant();
    } QVariant modelex::headerData(int section, Qt::Orientation orientation, int role) const
    {
    if(role == Qt::DisplayRole && Qt::Horizontal == orientation)
    {
    //返回表的开头
    return header[section];
    }
    else
    {
    return QAbstractTableModel::headerData(section,orientation,role);
    }
    } void modelex::showModel()
    {
    header<<"兵种" <<"兵器";
    //数字与字符串对应
    army<<<<<<<<<<;
    weapon<<<<<<<<<<;
    }
  • main.cpp
     #include "widget.h"
    #include <QApplication>
    #include <QTableView>
    #include "modelex.h" int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);
    //Widget w;
    //w.show();
    modelex m;
    QTableView view;
    view.setModel(&m);
    view.show();
    view.resize(,); return a.exec();
    }

运行效果

34.QT模型(表格绘制)的更多相关文章

  1. Qt实现表格树控件-支持多级表头

    目录 一.概述 二.效果展示 三.实现方式 四.多级表头 1.数据源 2.表格 3.QStyledItemDelegate绘制代理 五.测试代码 六.相关文章 原文链接:Qt实现表格树控件-支持多级表 ...

  2. qt模型学习

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.Qt import * from PyQt4. ...

  3. Qt之表格控件蚂蚁线

    一.蚂蚁线 摘自互动百科:在图像影像软件中表示选区的动态虚线,因为虚线闪烁的样子像是一群蚂蚁在跑,所以俗称蚂蚁线.在Poshop,After Effect等软件中比较常见. 背景:用过excel的同学 ...

  4. Qt实现表格控件-支持多级列表头、多级行表头、单元格合并、字体设置等

    目录 一.概述 二.效果展示 三.定制表头 1.重写数据源 2.重写QHeaderView 四.设置属性 五.相关文章 原文链接:Qt实现表格控件-支持多级列表头.多级行表头.单元格合并.字体设置等 ...

  5. Qt实现表格树控件-自绘树节点虚线

    目录 一.开心一刻 二.自绘树节点? 三.效果展示 四.实现思路 1.可扩展接口 2.函数重写 3.同步左侧表头 五.相关文章 原文链接:Qt实现表格树控件-自绘树节点虚线 一.开心一刻 一程序员第一 ...

  6. Qt之自绘制饼图

    1.说明 最近在搞绘图方面的工作,说实话C++的第三方绘图库并不算多,总之我了解的有:qtcharts.ChartDirector.qwt.kdchart和QCustomPlot.这几个库各有利弊. ...

  7. 重构一段基于原生JavaScript的表格绘制代码

    为了在CardSimulate项目中方便的显示技能和效果列表,决定重构以前编写的一段JavaScript代码——att表格绘制库,这段代码的作用是将特定的JavaScript数据对象转化为表格,支持精 ...

  8. QT 基本图形绘制

    QT 基本图形绘制 1.告诉绘制引擎一些东西 QPainter::Antialiasing 在可能的情况下,反锯齿       QPainter::TextAntialiasing 在可能的情况下,文 ...

  9. [Qt5] 使用Qt设计器绘制主窗口

    实践代码: git clone https://github.com/dilexliu/learn_qt5.git Step1: Qt设计器绘制窗口 保存会得到一个文件: mainwindow.ui ...

随机推荐

  1. CSS浮动相关解决办法

    浮动元素引起的问题: 1. 父元素的一级子元素全都为浮动元素的情况下,父元素的高度无法被撑开,影响与父元素同级的元素 2. 与浮动元素同级的非浮动元素(内容)会跟随其后 3. 若非第一个元素浮动,则该 ...

  2. lua的Metatables和Metamethods

    Metatable: lua中的每一个表都有其Metatable,默认情况下Metatable为nil.可通过setmetatable函数设置或者改变一个表的Metatable, 也可以通过getme ...

  3. 使用Micrisoft.net设计方案 第二章组织模式

    第二章组织模式 模式不仅依赖于它所包含的更小模式,同时也依赖包含它的更大的模式.它是描述复杂软件的系统方法. 本章的目标是让我们了解以下问题: 1.如何标识模式与模式的关系 2.如何把模式组织成模式集 ...

  4. Android RecyclerView、ListView实现单选列表的优雅之路.

    一 概述: 这篇文章需求来源还是比较简单的,但做的优雅仍有值得挖掘的地方. 需求来源:一个类似饿了么这种电商优惠券的选择界面: 其实就是 一个普通的列表,实现了单选功能, 效果如图:  (不要怪图渣了 ...

  5. 11.javaweb国际化标签库

    一.国际化标签库 1,格式化标签库提供的标签 2,标签详解 2.1<fmt:setLocale>标签 下面设置不同的区域,并在设置的区域下显示日期 2.2<fmt:requestEn ...

  6. DataTable和DataRow和DataColumn ~~~~~~~~~~[][]

    DataSet.Tables[0].Rows[0][1]表示DataSet中第一张表(因为Tables[0]就是第一张表的意思)中第一行(Rows[0][]) 第二列(Rows[][1])的数据. D ...

  7. 02--C编程细节整理(一)

    用C语言比较多,这篇是平时攒下的.有些内容在工作后可能会很常见,但是不用容易忘,所以就写篇博客吧. 1.        printf的用法 %*可以用来跳过字符,可以用于未知缩进.像下面一样. for ...

  8. 06《UML大战需求分析》之六

    不知不觉中,大多数课程的学习已经接近了尾声,<UML大战需求分析>这本书也陪伴了我们很久.在学习的过程中,我发现很多课程中其实都离不开UML.足以证明,UML在需求分析中的重大作用和在我们 ...

  9. Memory management in RxSwift – DisposeBag

    I’ve noticed a lot of beginners in RxSwift ask about DisposeBag. DisposeBag isn’t a standard thing i ...

  10. Webpack 学习记录之概念

    1 什么是webpack webpack是一个模块打包器,可以递归的构建一个依赖关系图,其中包含每个程序需要的每个模块,然后将所有模块打包成一个或多个bundle.他和其他的工具最大的不同在于他支持c ...