2017-10-08 4 views
1

Wir in der Regel nach Ansicht des Modells in Qt wie folgt festgelegt: view->setModel(model);Qt: entfernen Modell aus Sicht

Aber gibt es eine Möglichkeit, um entfernen ein Modell aus Sicht? Ich meine, lassen Sie eine Ansicht buchstäblich leer, so wie sie gerade erstellt wurde, und es wurde noch kein Modell dafür festgelegt.

Wenn Sie mich fragen, ein Grund meines Wunsches, habe ich einen ziemlich ähnlichen Fall wie in diesem Kerl post. Und wenn die erste Ansicht keine Auswahl hat oder leer ist/ungültig/was auch immer, möchte ich die zweite Ansicht buchstäblich nichts anzeigen lassen: keine Kopfzeilen, Spalten, Mülldaten. Das Entfernen eines Modells aus der Ansicht scheint in diesem Fall ziemlich sinnvoll zu sein.

Ich habe einen schmutzigen Hack versucht: *view = QTableView(); Aber Qt kümmerten über solche bösen Dinge und machte operator= privat.

+0

Funktioniert [views-> setModel (nullptr) '] (http://doc.qt.io/qt-5/qabstractitemview.html#setModel) nicht? –

Antwort

3

Von der Quelle von QAbstractItemView::setModel():

d->model = (model ? model : QAbstractItemModelPrivate::staticEmptyModel()); 

Es sieht aus wie wenn Sie einen Null-Zeiger übergeben, wird es intern einige Dummy-Modell Rückfall verwenden. Daher werden Nullzeiger unterstützt, und das ist eine gültige Methode, um das aktuelle Modell zu "unscharf" zu schalten.

Verwandte Themen