QT自定义TableModel
来源:互联网 发布:战舰少女r日服 知乎 编辑:程序博客网 时间:2024/05/16 09:49
1、modelex.h
#ifndef MODELEX_H#define MODELEX_H#include <QAbstractTableModel>#include <QVector>#include <QMap>#include <QStringList>class ModelEx:public QAbstractTableModel{public : //构造函数 ModelEx(QObject *parent=0); //行数 virtual int rowCount(const QModelIndex &parent) const; //列数 virtual int columnCount(const QModelIndex &parent) 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
2、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();}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");}int ModelEx::columnCount(const QModelIndex &parent) const{ return 3;}int ModelEx::rowCount(const QModelIndex &parent) const{ return army.size();}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()]; } 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);}
3、main.cpp
#include <QApplication>#include "modelex.h"#include <QTextCodec>#include <QTableView>int main(int argc,char* argv[]){ QApplication app(argc,argv); QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); ModelEx modelex; QTableView view; view.setModel(&modelex); view.setWindowTitle(QObject::tr("ModelEx")); view.resize(500,500); view.show(); return app.exec();}
- QT 自定义tablemodel
- QT自定义TableModel
- 自定义tablemodel
- 自定义实现TableModel
- TableModel
- TableModel
- JavaSwing 表格JTable内容居中 自定义TableModel
- Java使用自定义的tableModel,设置可编辑方式
- Java使用自定义的tableModel,设置可编辑方式
- TableModel方法:
- TableModel.class
- TableModel示例
- TableModel方法:
- TableModel应用实例
- [转载]TableModel方法
- TableModel失效的问题
- JTable和TableModel
- TableModel.JTable和AbstractTableModel
- ARM 汇编知识点滴(一)
- 20款对设计师非常有用的在线配色工具
- C 语言 win32 游戏编程 - 贪吃蛇
- Linux下makefile教程
- js和css的顺序关系
- QT自定义TableModel
- 原来1,你认识一个人,20年一直未见面,一般情况下,等到20年后,在遇见你们聊半天也不会认出彼此的,除非提及你们曾经的往事,才会觉得此人像他
- 51单片机-day01
- 海豚浏览器2013实习生(测试)5.17笔试!
- 三星s5pv210之芯灵思Sin210与Ti Beaglebone Black之对比
- 分享最新25套漂亮的免费网页图标素材
- 面试总结之-哈希算法分析
- java根据两个日期计算每月的天数,并且除去周六日
- android bluetooth开发