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.