지금까지 내가 찾은 유일한 해결책은 QItemDelegate를 서브 클래스 화하고 paint() 함수에서 정렬 규칙을 구현하는 것입니다. 정말로 가장 간단한 방법입니까?QTableView의 열에 텍스트 정렬을 프로그래밍 방식으로 설정하는 방법은 무엇입니까?
저는 C++ API를 사용하고 있습니다.
지금까지 내가 찾은 유일한 해결책은 QItemDelegate를 서브 클래스 화하고 paint() 함수에서 정렬 규칙을 구현하는 것입니다. 정말로 가장 간단한 방법입니까?QTableView의 열에 텍스트 정렬을 프로그래밍 방식으로 설정하는 방법은 무엇입니까?
저는 C++ API를 사용하고 있습니다.
QItemDelegate
을 서브 클립으로 대체하는 대신 모델을 서브 클래스 화하고 data()
메소드를 대체하십시오.
QVariant MyModel::data(const QModelIndex& index, int role) const {
if (index.column() == yourCellIndex && role == Qt::TextAlignmentRole) {
return Qt::AlignLeft;
} else {
return QAbstractTableModel::data(index, role);
}
}
QSqlTableModel *model2= new QSqlTableModel();
model2->setTable("Save");
model2->select();
QSortFilterProxyModel *proxy1=new QSortFilterProxyModel();
proxy1->setSourceModel(model2);
QStandardItemModel *modd=new QStandardItemModel();
for (int z =0; z< proxy1->rowCount(); ++z)
{
for (int y =0; y< proxy1->columnCount(); ++y)
{
QStandardItem *item= new QStandardItem();
item->setText(proxy1->index(z,y).data().toString());
item->setTextAlignment(Qt::AlignCenter);
modd->setItem(z,y,item);
}
}
ui->tableView->setModel(modd);
코드를 덤프하지 말고 사고 방식을 설명하십시오. 감사. – Cthulhu
반환 QAbstractTableModel :: 데이터 (인덱스 역할을) 할 수 없습니다 나는 생각한다. 그것은 순수 가상이기 때문입니다. QVariant()를 반환해야합니다. http://doc.qt.io/qt-5/qabstractitemmodel.html#data –
이 답변은 잔디가 푸르 렀고 하늘이 더 분명해진 더 간단한시기에 주어졌습니다. 이 대답을 편집 하시려면 – Nekuromento