
QT-QTableView的自定model实例
发布日期:2021-05-10 12:00:58
浏览次数:26
分类:精选文章
本文共 3282 字,大约阅读时间需要 10 分钟。
操作系统:UOS.
main.cpp
#include "mainwindow.h"#include#include #include #include #include int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include#include #include #include #include #include #include class MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWidget *parent = 0); ~MainWindow(); void updatedata();private: ModelEx *modelEx; QTableView *view;};#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ QWidget *widget = new QWidget(this); // widget->resize(1200,1200); modelEx =new ModelEx(); QGridLayout *mainLayout= new QGridLayout(widget); view = new QTableView(this); view->setModel(modelEx); view->setWindowTitle(QObject::tr("modelEx")); view->resize(500,500); QPushButton *btn = new QPushButton(this); btn->setText(tr("按钮")); mainLayout->addWidget(view,0,1); mainLayout->addWidget(btn,1,1); mainLayout->setSpacing(10); connect(btn, &QPushButton::clicked,this,&MainWindow::updatedata); this->setCentralWidget(widget); this->resize(700,700); //setLayout(mainLayout); //mainLayout.show();}void MainWindow::updatedata(){ qDebug() <<"tr"; qDebug() <<"rowCount:"<< modelEx->rowCount(QModelIndex()); qDebug() <<"columnCount:"<< modelEx->columnCount(QModelIndex()); modelEx->army<<1<<2<<3<<4<<2<<1<<4<<3; modelEx->weaponType<<1<<2<<3<<6<<7<<4<<5<<8; modelEx->weapon<< < < < < < < setModel(NULL); view->setModel(modelEx);}MainWindow::~MainWindow(){}
自定义model
modelex.h
#ifndef MODELEX_H#define MODELEX_H#include#include #include #include class ModelEx : public QAbstractTableModel{public: explicit ModelEx(QObject *parent=nullptr); virtual int rowCount(const QModelIndex &parent=QModelIndex()) const; // QAbstractItemModel interfacepublic: int columnCount(const QModelIndex &parent) const; QVariant data(const QModelIndex &index, int role) const; // QAbstractItemModel interfacepublic: QVariant headerData(int section, Qt::Orientation orientation, int role) const;public: QVector army; QVector weaponType; QMap armyMap; QMap 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("陆战对"); weaponTypeMap[1] = tr("轰炸机1"); weaponTypeMap[2] = tr("轰炸机2"); weaponTypeMap[3] = tr("轰炸机3"); weaponTypeMap[4] = tr("轰炸机4"); weaponTypeMap[5] = tr("轰炸机5"); weaponTypeMap[6] = tr("轰炸机6"); weaponTypeMap[7] = tr("轰炸机7"); weaponTypeMap[8] = tr("轰炸机8"); populateModel();}void ModelEx::populateModel(){ header<< <
运行结果如下:
点击按钮可以动态添加数据
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月03日 02时36分46秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
有道云笔记 同步到我的博客园
2021-05-09
阿里云“网红"运维工程师白金:做一个平凡的圆梦人
2021-05-09
AnalyticDB for PostgreSQL 6.0 新特性介绍
2021-05-09
Alibaba Cloud Linux 2 LTS 正式发布,提供更高性能和更多保障!
2021-05-09
李笑来必读书籍整理
2021-05-09
vue书籍整理
2021-05-09
记Java中有关内存的简单认识
2021-05-09
Mybatis配置解析
2021-05-09
http头部 Expect
2021-05-09
Hadoop(十六)之使用Combiner优化MapReduce
2021-05-09
C#实现outlook自动签名
2021-05-09
MySQL 5.5 My.cnf 模版
2021-05-09
使用mysqladmin ext了解MySQL运行状态【转】
2021-05-09
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
2021-05-09
精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解
2021-05-09
CoreCLR源码探索(八) JIT的工作原理(详解篇)
2021-05-09
分享在winform下实现模块化插件编程-优化版
2021-05-09
[Unity][EXE]封装打包后怎么Debug错误显示output_log.txt
2021-05-09
使用promise封装wx:requset()
2021-05-09