Programm stürtzt bei Item Zugriff ab!
Verfasst: 13. Juli 2011 18:40
Hi,
ich verwende ein TreeView mit einem SortFilterProxyModel und habe als Daten model ein StandardItemModel und ich habe ein Click-Event auf das TreeView registriert.
Das ganze sieht wie folgt aus:
Sobald ich einen Doppelklick mache stürzt das Programm ab!
Ich habe keine Ahnung woran es liegt.
ich verwende ein TreeView mit einem SortFilterProxyModel und habe als Daten model ein StandardItemModel und ich habe ein Click-Event auf das TreeView registriert.
Das ganze sieht wie folgt aus:
Code: Alles auswählen
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
table = new QTreeView(this);
model = new QStandardItemModel(0, 4,this);
proxyModel = new QSortFilterProxyModel(this);
add_button->setText(tr("Kontakt hinzufügen"));
proxyModel->setDynamicSortFilter(true);
connect(table, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(on_itemDoubleClicked(QModelIndex)));
model->setHeaderData(0, Qt::Horizontal, QObject::tr("Index"));
model->setHeaderData(1, Qt::Horizontal, QObject::tr("Bla 1"));
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Bla 2"));
model->setHeaderData(3, Qt::Horizontal, QObject::tr("Bla 3"));
model->insertRow(0);
model->setData(model->index(0, 0), QString::number(0));
model->setData(model->index(0, 1), tr("bla"));
model->setData(model->index(0, 2), tr("bla"));
model->setData(model->index(0, 3), tr("bla"));
model->insertRow(0);
model->setData(model->index(0, 0), QString::number(1));
model->setData(model->index(0, 1), tr("bla"));
model->setData(model->index(0, 2), tr("bla"));
model->setData(model->index(0, 3), tr("bla"));
proxyModel->setSourceModel(model);
proxyModel->setFilterKeyColumn(-1);
table->setModel(proxyModel);
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
table->setSortingEnabled(true);
table->setAcceptDrops(false);
table->setColumnHidden(0,true);
table->setContentsMargins(2,2,2,2);
}
void MainWindow::on_itemDoubleClicked(const QModelIndex & index) {
QStandardItem* item = model->itemFromIndex(index);
QMessageBox::warning(this,"",QString::number(item->row()));
}
Ich habe keine Ahnung woran es liegt.