2011-02-10 7 views

Trả lời

26

Cách thay thế cho subclussing QItemDelegate là để phân lớp mô hình của bạn và ghi đè phương thức 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

trở QAbstractTableModel :: dữ liệu (chỉ số, vai trò) là không thể tôi nghĩ. Bởi vì nó là ảo tinh khiết. Bạn nên trả về QVariant(). http://doc.qt.io/qt-5/qabstractitemmodel.html#data –

+0

Câu trả lời này được đưa ra trong một thời gian đơn giản, khi cỏ xanh hơn và bầu trời rõ ràng hơn. Vui lòng chỉnh sửa câu trả lời này – 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

Vui lòng không chỉ đổ mã của bạn, giải thích ý tưởng của bạn. Cảm ơn. – Cthulhu