Files
GUI/src/db/CenterAlignSqlTableModel.h
2022-04-01 15:23:42 +08:00

34 lines
1.0 KiB
C++

//
// Created by Krad on 2021/10/11.
//
#ifndef GUI_CENTERALIGNSQLTABLEMODEL_H
#define GUI_CENTERALIGNSQLTABLEMODEL_H
#include <QSqlTableModel>
class CenterAlignSqlTableModel:public QSqlTableModel {
Q_OBJECT
public:
explicit CenterAlignSqlTableModel(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase()):QSqlTableModel(parent,db){};
~CenterAlignSqlTableModel(){};
protected:
QVariant data(const QModelIndex& index, int role) const override {
if (index.column() >0 && role == Qt::TextAlignmentRole) {
return Qt::AlignCenter;
}
if (index.column() >0 && role == Qt::DisplayRole){
auto val = QSqlTableModel::data(index,role).toString();
QStringList list = val.split("\n");
if (list.size()>1)
return QString("%1...").arg(list[0].left(list[0].length()<20?list[0].length():20));
return val;
}
else {
return QSqlTableModel::data(index,role);
}
}
};
#endif //GUI_CENTERALIGNSQLTABLEMODEL_H