4

通常、Qt でビューのモデルを次のように設定します。 view->setModel(model);

しかし、ビューからモデルを削除する方法はありますか? つまり、ビューが作成されたばかりで、まだモデルが設定されていないかのように、ビューを空のままにしておくということです。

志望理由を聞くと、この人の投稿とかなり似たケースがあります。そして、最初のビューに選択がないか、空/無効/何でもある場合、2番目のビューに文字通り何も表示しないようにしたい:ヘッダー、列、ゴミデータはありません。その場合、ビューからモデルを削除することはかなり合理的なようです。

私は汚いハックを試みました: *view = QTableView(); しかし、Qt はそのような邪悪なことに気を配り、operator=非公開にしました。

4

1 に答える 1

7

のソースからQAbstractItemView::setModel():

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

null ポインターを渡すと、内部でダミー モデルのフォールバックが使用されるようです。そのため、null ポインターがサポートされており、これは現在のモデルを「設定解除」する有効な方法です。

于 2017-10-08T11:08:18.300 に答える