四十九、Qt之QTableView之单元格内文字居中、根据内容自动调整列宽

前提是你 提交于 2020-03-07 03:05:52

一、单元格内文字居中

CustomSqlQueryModel.h

#ifndef CUSTOMSQLQUERYMODEL_H
#define CUSTOMSQLQUERYMODEL_H

#include <QObject>
#include <QSqlQueryModel>

class CustomSqlQueryModel : public QSqlQueryModel
{
public:
    CustomSqlQueryModel(QObject *parent = 0);

    // QAbstractItemModel interface
public:
    QVariant data(const QModelIndex &index, int role) const override;
};

#endif // CUSTOMSQLQUERYMODEL_H

CustomSqlQueryModel.cpp

#include "customsqlquerymodel.h"

CustomSqlQueryModel::CustomSqlQueryModel(QObject *parent) : QSqlQueryModel(parent)
{

}
/**
 * @brief 实现单元格内文字居中 
 */
QVariant CustomSqlQueryModel::data(const QModelIndex &index, int role) const
{
    QVariant value = QSqlQueryModel::data(index, role);
    /**
      * 单元格内容居中
      */
    if (Qt::TextAlignmentRole == role) {
        value = Qt::AlignCenter;
    }
    return value;
}

二、常用设置

    //选择行为:行选择
    ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
    
    //选择模式:单选(PS:还有一种模式是多选,按住 ctrl 多选)
    ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);
    
    //隔行变色
    ui->tableView->setAlternatingRowColors(true);
    
    //根据内容自动调整列宽
    ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!