34 lines
1.0 KiB
C++
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
|