Hallo,
ich habe einen QTreeview, der ein von mir erstelltes Model anzeigt. Das funktioniert auch. Wenn aber ein Elternelement nich ausgeklappt ist und man löscht eines seiner Kinder, dann verschwindet das kleine Kreuz vor dem Element, welches anzeigt, ob Kinder vorhanden sind.
Wenn man dann vor das Elternelement klickt, klappt es anstandslos aus und es werden die verbliebenen Unterelemente angezeigt, aber das Symbol wird ist immernoch nicht sichtbar.
Der Fehler tritt nicht auf, wenn das Elternelement während des Löschens ausgeklappt ist.
Kann mir irgendjemand helfen?
Problem mit QTreeview
Code: Alles auswählen
#include <QTreeView>
#include <QPushButton>
#include <QStandardItemModel>
#include <QVBoxLayout>
class Win : public QWidget
{
Q_OBJECT
QPushButton* btn;
QStandardItemModel* model;
bool filled;
private slots:
void on_btn_clicked() {
if(!filled) {
model->clear();
QStandardItem* parent = new QStandardItem("Parent");
model->appendRow(parent);;
parent->appendRow(new QStandardItem("Do not Delete"));
parent->appendRow(new QStandardItem("To Delete"));
btn->setText("Delete Item");
filled = true;
} else {
model->item(0)->removeRow(1);
btn->setText("Clear and refill Model");
filled = false;
}
}
public:
Win() : filled(false) {
QVBoxLayout* layout = new QVBoxLayout(this);
QAbstractItemView* view = new QTreeView;
layout->addWidget(view);
btn = new QPushButton("Fill Model");
layout->addWidget(btn);
connect(btn, SIGNAL(clicked()), SLOT(on_btn_clicked()));
model = new QStandardItemModel(this);
view->setModel(model);
}
};Dankeschön
Vielen Dank für die Antworten, vielleicht kann ich den Bug irgendwie umgehen.