void MainWindow::contextTreeView(QModelIndex index)
{
ui->treeView->setContextMenuPolicy(Qt::NoContextMenu);
switch(index.column()){
case 4:
case 5:
case 6:
case 7:
// Bedingung für das ContextMenu Teilung:
// 1. Teiler sind in den Spalten: 4,5,6,7 vorhanden
// 2. die Teilung ist noch nicht gerechnet (?)
if(model->data(index,Qt::DisplayRole).toString().contains(QRegExp("[0-9]"))){
if(model->data(model->index(index.row(),
index.column()+4,
index.parent()),
Qt::DisplayRole).toString().contains(QRegExp("[?]")))
{
this->index = index;
ui->treeView->addAction(ui->action_Teilung);
ui->treeView->setContextMenuPolicy(Qt::ActionsContextMenu);
}
}
break;
default:
break;
}
}
Frage:
Wie kann ich jetzt für den nächsten Menüpunkt einen Separater einfügen und eventuell auch wieder löschen wenn die Zelle keine zwei Einträge im Kontextmenü haben soll?
Zuletzt geändert von 24dan am 3. April 2010 22:29, insgesamt 1-mal geändert.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Ich nehme für solche Fälle immer das event für das Kontextmenü und baue mir dieses selber zusammen.
Den angeklickten Index hole ich mir über das Sekection-Modell.
Das macht das Handling für mich einfacher und ich kann frei entscheiden was angezeigt werden soll.
Ansonsten gibt es ja auch noch das removeAction() um Actions wieder herauszunehmen.
Wie kann ich jetzt für den nächsten Menüpunkt einen Separater einfügen und eventuell auch wieder löschen wenn die Zelle keine zwei Einträge im Kontextmenü haben soll? Confused
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)