QTableView QTableView (重写QTableView)

tablewidget.h 

#include <QTableView>
class QStandardItemModel;

class TableWidget : public QTableView
{
    Q_OBJECT
public slots:
    void dataChangedSlot(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int> ());

public:
    TableWidget(QWidget *parent = 0);
    QStandardItemModel* model;

    ~TableWidget();
};

tablewidget.cpp

#include "tablewidget.h"
#include <QStandardItemModel>
#include <QDebug>

TableWidget::TableWidget(QWidget *parent)
    : QTableView(parent)
{
    model = new QStandardItemModel(this);
    model->setColumnCount(6);
    model->setHeaderData(0,Qt::Horizontal, "时间");
    model->setHeaderData(1,Qt::Horizontal, "学生");
    model->setHeaderData(2,Qt::Horizontal, "上线时间");
    model->setHeaderData(3,Qt::Horizontal, "下线时间");
    model->setHeaderData(4,Qt::Horizontal, "状态");
    model->setHeaderData(5,Qt::Horizontal, "班级");
    //model->setRowCount(3);
    //model->setHeaderData(0,Qt::Vertical, "记录一");
    //model->setHeaderData(1,Qt::Vertical, "记录二");
    //model->setHeaderData(2,Qt::Vertical, "记录三");

    this->setModel(model);
    this->setShowGrid(false);                          // 隐藏网格线
    this->setFocusPolicy(Qt::NoFocus);                 // 去除当前Cell周边虚线框
    this->setAlternatingRowColors(true);               // 开启隔行异色
    connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), this, SLOT(dataChangedSlot(QModelIndex,QModelIndex,QVector<int>)));
    this->setModel(model);
}

void TableWidget::dataChangedSlot(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
{
    qDebug() << model->data(topLeft).toString() << endl;
}

TableWidget::~TableWidget()
{
}

 

发布了1636 篇原创文章 · 获赞 341 · 访问量 221万+

猜你喜欢

转载自blog.csdn.net/tony2278/article/details/103938933
今日推荐