提升类要管理多种表格的数据,也可以考虑QList中存储数据对象的基类指针,用法QList存储多种数据类型,省去了每一种表格都要新加一个QList对象保存
mytable.h
#ifndef MYTABLE_H
#define MYTABLE_H
#include <QTableWidget>
#include "widget.h"
#include <QTableWidgetItem>
class MyTable : public QTableWidget
{
public:
MyTable(QWidget *parent = nullptr);
~MyTable();
void SetType(PageId::Type type);
void initTable();
void SetTablePage1();
void SetTablePage2();
void SetTablePage3();
void SetTableInfo1(QString str);
void SetTableInfo2(QString str);
void SetTableInfo3(QString str);
void ShowTableInfo1();
void ShowTableInfo2();
void ShowTableInfo3();
void ClearTableInfo();
private:
void OnItemChange(QTableWidgetItem *item);
private:
PageId::Type m_type;
QList<tableInfo> m_table1;
QList<tableInfo> m_table2;
QMap<PageId::Type,QList<tableInfo>> m_tableMap;
};
#endif // MYTABLE_H
mytable.cpp
#include "mytable.h"
#include <QDebug>
#include <QHeaderView>
#include <iostream>
using namespace std;
MyTable::MyTable(QWidget *parent):QTableWidget(parent),m_type(PageId::En_Type1)
{
initTable();
connect(this,&MyTable::itemChanged,this,&MyTable::OnItemChange);
tableInfo info;
for(int i=0; i<5; i++){
m_table1.push_back(info);
m_table2.push_back(info);
}
}
MyTable::~MyTable()
{
}
void MyTable::SetType(PageId