ich habe hier wiedermal ein kleines Problem.
[geloest] QTreeWidgetItem und das Flag Qt::ItemIsEditable
[geloest] QTreeWidgetItem und das Flag Qt::ItemIsEditable
Hi,
ich habe hier wiedermal ein kleines Problem.
Ich habe hier ein QTreewidget mit 2 Spalten, welches mittels QTreeWidgetItem mit items gefüllt wird. Jetzt möchte ich allerdings pro Spalte die Editierbarkeit der einzelnen Items festlegen. Spalte 0 soll nicht editierbar sein Spalte 1 dagegen schon. Aktuell habe ich ein normales Flag pro item auf Qt::ItemIsEditable gesetzt. Dadurch sind aber alle Spalten editierbar. Gibt es eine Möglichkeit das für jede einzelne Spalte unabhängig einzustellen?
ich habe hier wiedermal ein kleines Problem.
Zuletzt geändert von buggybear am 26. April 2007 20:04, insgesamt 1-mal geändert.
Es geht wahrscheinlich viel einfacher... Ich habe einfach mal nen neuen SLOT definiert, der durch das itemDoubleClicked(QTreeWidgetItem *, int) SIGNAL ausgelöst wird. In dem werte ich einfach die Spalten aus und wenn Spalte = 0 setze ich die Flags anders... Das sieht dann so aus:
Funktioniert schonmal ganz gut (für alle Childitems).
Code: Alles auswählen
connect(this, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(changeFlagsItemElement(QTreeWidgetItem *, int)));
void Blubb::changeFlagsItemElement(QTreeWidgetItem *item, int column)
{
if (column == 0)
{
item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | Qt::ItemIsEnabled);
QMessageBox::critical(window(), tr("blah"), tr("Diese Elemente sollen nicht editiert werden!"));
}
else
{
item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | Qt::ItemIsEnabled);
}
}