我是靠谱客的博主 忧伤小熊猫,最近开发中收集的这篇文章主要介绍Qt Qtableview 无法文字居中显示的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

直接贴代码
主要的方法是重写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 无法文字居中显示的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部