概述
直接贴代码
主要的方法是重写QSqlTableModel中的data
追根溯源下去,其实是QSqlQueryModel的data
新建一个C++类MyTableModel ,将基类指定为QWidget,之后再在.h,.cpp.文件中进行替换。
替换父类为QSqlTableModel。
mytablemodel.h
#ifndef MYTABLEMODEL_H
#define MYTABLEMODEL_H
#include <QWidget>
#include <QSqlTableModel>
class MyTableModel : public QSqlTableModel
{
Q_OBJECT
public:
explicit MyTableModel(QWidget *parent = nullptr,QSqlDatabase db = QSqlDatabase());
//这里就是将QSqlTableModel的带参数的构造函数复制了下来,对名字进行修改而已。
QVariant data(const QModelIndex &index, int role) const;
signals:
};
#endif // MYTABLEMODEL_H
mytablemodel.cpp
#include "mytablemodel.h"
#include <QSqlDatabase>
MyTableModel::MyTableModel(QWidget *parent, QSqlDatabase db) : QSqlTableModel(parent,db)
//关键是这里,在实现的的时候,由于.h文件中已经定义了参数的默认值,所以这里
//就不需要再次赋值,只需要指明参数的类型就行了,后面需要明确调用父类的带参构造函数。这样MyTableModel就可以调用QSqlDatabase 的构造函数了。
{
}
QVariant MyTableModel::data(const QModelIndex &item, int role) const
{
QVariant value = QSqlQueryModel::data(item, role);
if(role == Qt::TextAlignmentRole )
{
value = (Qt::AlignCenter);
return value;
}
return value;
}
之后使用的时候将所有QSqlQueryModel换成MyTableModel。
这样的显示就是居中的了。
参考文献
https://blog.csdn.net/i7891090/article/details/70168151
最后
以上就是忧伤小熊猫为你收集整理的Qt Qtableview 无法文字居中显示的问题的全部内容,希望文章能够帮你解决Qt Qtableview 无法文字居中显示的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复