如何以编程方式设置QTableView列的文本对齐方式?

如何以编程方式设置QTableView列的文本对齐方式?,qt,qt4,Qt,Qt4,到目前为止,我找到的唯一解决方案是将QItemDelegate子类化,并在paint()函数中实现对齐规则。这真的是最简单的方法吗 我使用C++ API .< /p> < p>子代码的替代 qITEMDATABAS//COM>将对模型进行子类,并重写数据()/>代码>方法.< /P> QVariant MyModel::data(const QModelIndex& index, int role) const { if (index.column() == yourCellIn

到目前为止,我找到的唯一解决方案是将QItemDelegate子类化,并在paint()函数中实现对齐规则。这真的是最简单的方法吗


我使用C++ API .< /p> < p>子代码的替代<代码> qITEMDATABAS//COM>将对模型进行子类,并重写<代码>数据()/>代码>方法.< /P>

QVariant MyModel::data(const QModelIndex& index, int role) const {
    if (index.column() == yourCellIndex && role == Qt::TextAlignmentRole) {
        return Qt::AlignLeft;
    } else {
        return QVariant();
    }
}
QSqlTableModel*model2=新的QSqlTableModel();
模式2->可设置(“保存”);
model2->select();
QSortFilterProxyModel*proxy1=新的QSortFilterProxyModel();
proxy1->setSourceModel(model2);
QStandardItemModel*modd=新的QStandardItemModel();
对于(intz=0;zrowCount();++z)
{
对于(int y=0;ycolumnCount();++y)
{
QStandardItem*项=新的QStandardItem();
item->setText(proxy1->index(z,y).data().toString());
item->setTextAlignment(Qt::AlignCenter);
modd->setItem(z,y,item);
}
}
ui->tableView->setModel(modd);

以下内容对我很有用:

其中:

QTableView*         sudukoTable;
QStandardItemModel* sudukoModel;
QModelIndex*        modelIndex;

QStandardItem*      sudukoItem;
这一评论值得赞扬:

`item->setTextAlignment(Qt::AlignCenter);对我来说很好拉塔


请不要只是扔掉你的代码,解释一下你的思路。谢谢。`item->setTextAlignment(Qt::AlignCenter);对我来说很好。
void MainWindow::fillTable()
{
    sudukoItem->setText( "qq" );
    sudukoItem->setTextAlignment(Qt::AlignCenter);

    sudukoModel->appendRow( sudukoItem );
    sudukoTable->setModel( sudukoModel );

    sudukoTable->setRowHeight( ( sudukoModel->rowCount() - 1 ), 100 );
    sudukoTable->setColumnWidth( ( sudukoModel->columnCount() - 1 ), 100 );
}
QTableView*         sudukoTable;
QStandardItemModel* sudukoModel;
QModelIndex*        modelIndex;

QStandardItem*      sudukoItem;