34.QT模型(表格绘制)
- 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模型(表格绘制)的更多相关文章
- Qt实现表格树控件-支持多级表头
目录 一.概述 二.效果展示 三.实现方式 四.多级表头 1.数据源 2.表格 3.QStyledItemDelegate绘制代理 五.测试代码 六.相关文章 原文链接:Qt实现表格树控件-支持多级表 ...
- qt模型学习
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.Qt import * from PyQt4. ...
- Qt之表格控件蚂蚁线
一.蚂蚁线 摘自互动百科:在图像影像软件中表示选区的动态虚线,因为虚线闪烁的样子像是一群蚂蚁在跑,所以俗称蚂蚁线.在Poshop,After Effect等软件中比较常见. 背景:用过excel的同学 ...
- Qt实现表格控件-支持多级列表头、多级行表头、单元格合并、字体设置等
目录 一.概述 二.效果展示 三.定制表头 1.重写数据源 2.重写QHeaderView 四.设置属性 五.相关文章 原文链接:Qt实现表格控件-支持多级列表头.多级行表头.单元格合并.字体设置等 ...
- Qt实现表格树控件-自绘树节点虚线
目录 一.开心一刻 二.自绘树节点? 三.效果展示 四.实现思路 1.可扩展接口 2.函数重写 3.同步左侧表头 五.相关文章 原文链接:Qt实现表格树控件-自绘树节点虚线 一.开心一刻 一程序员第一 ...
- Qt之自绘制饼图
1.说明 最近在搞绘图方面的工作,说实话C++的第三方绘图库并不算多,总之我了解的有:qtcharts.ChartDirector.qwt.kdchart和QCustomPlot.这几个库各有利弊. ...
- 重构一段基于原生JavaScript的表格绘制代码
为了在CardSimulate项目中方便的显示技能和效果列表,决定重构以前编写的一段JavaScript代码——att表格绘制库,这段代码的作用是将特定的JavaScript数据对象转化为表格,支持精 ...
- QT 基本图形绘制
QT 基本图形绘制 1.告诉绘制引擎一些东西 QPainter::Antialiasing 在可能的情况下,反锯齿 QPainter::TextAntialiasing 在可能的情况下,文 ...
- [Qt5] 使用Qt设计器绘制主窗口
实践代码: git clone https://github.com/dilexliu/learn_qt5.git Step1: Qt设计器绘制窗口 保存会得到一个文件: mainwindow.ui ...
随机推荐
- 用户注册登录验证 多版本集合 + hashlib加密
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/5/6 0006 12:22# @Author : Anthony.Waa# @S ...
- 初学 Ajax(涉及 php)
一直知道 ajax 但是尚未真正了解, 这次看了慕课网的<Ajax全接触>,算是有所收获,入了个门. 需要用到php,因为 Ajax也是向服务器请求(不知道这么解释对不对), 所以还需要配 ...
- 利用js实现进入页面首先执行刷新操作,且只刷新一次
让页面进行刷新,可以使用location.reload()方法,但是这种方法会让页面一直不断的刷新,这是因为当页面加载完成以后,我们让它刷新一次,那么浏览器就会重新向服务器请求数据, 界面会重新加载, ...
- js原生_获取url键值对
思路: 1.先对url进行处理,获取 ?后的字符串 postid=10457794&actiontip=保存修改成功') 2. 字符串通过&标识,不同参数转为数组 ["pos ...
- Bootstrap3 学习笔记
图片新窗口打开浏览
- sublime text 3 上安装xdebug
安装完成之后启动xdebug,缺省设置下会显示warning等信息,很不方便. 可以参考 https://github.com/martomo/SublimeTextXdebug/blob/maste ...
- win 运行
1.msconfig - 系统配置 - 服务-全部禁用 2.DXDIAG direct版本
- parent() parents() parentsUntil()三者之间的对比
$(document).ready(function(){ $("span").parent(); });只拿到span的父级标签 $(document).ready(functi ...
- Python基础:条件判断 &&循环
1:条件判断 2:循环 2.1:for 2.2 while 小结: continue :跳出本次循环 进行下次循环, break :结束循环体.
- sass揭秘之@mixin,%,@function(转载)
因为文章内含有很多sass代码,如需自己动手查看编译结果,推荐使用sassmeister这款在线编译工具,方便你阅读学习. 在阅读本文章之前,请先确认你已经阅读了上篇文章sass揭秘之变量,不然会给你 ...