2011-02-10 7 views

답변

26

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); 
    } 
} 
+0

반환 QAbstractTableModel :: 데이터 (인덱스 역할을) 할 수 없습니다 나는 생각한다. 그것은 순수 가상이기 때문입니다. QVariant()를 반환해야합니다. http://doc.qt.io/qt-5/qabstractitemmodel.html#data –

+0

이 답변은 잔디가 푸르 렀고 하늘이 더 분명해진 더 간단한시기에 주어졌습니다. 이 대답을 편집 하시려면 – Nekuromento

0
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); 
+6

코드를 덤프하지 말고 사고 방식을 설명하십시오. 감사. – Cthulhu

관련 문제