databaseTreeView
QAbstractTableModelのサブクラスに (QSortFilterProxyModel を介して) QTreeView ()を含むウィンドウがあります。を呼び出す[追加]ボタンがありますui->databaseTreeView->model()->insertRow(ui->databaseTreeView->model()->rowCount());
。[Edit] ボタンもあり、これを使用ui->databaseTreeView->selectionModel()->currentIndex();
して、インデックスをエディター ウィンドウに渡します。
[追加]ボタンで新規作成した項目のインデックスでエディタが自動で開くようにしたいのですが、モデルがソートされているため、行を挿入した行番号が使えません。PlusinsertRows()
はboolのみを返します(私の状況ではインデックスの方がはるかに便利なので、新しく追加されたアイテムのインデックスを取得する方法を誰かが教えてくれるかどうか疑問に思っています)。
他に方法がない場合はリファクタリングに 2 時間か 3 時間を費やしたいと思いますが、それはかなり単純なはずだと思っていたでしょう。私はQAbstractItemModel::rowsInserted
信号を興味深く見ていますが、それは私が与えた行を返すだけでinsertRows()
、追加されたばかりのアイテムであるかどうかに関係なく、リストの最後のアイテムを編集します。
完全なソースはhttps://github.com/megamasha/FlashKardで見つけることができ、誰でも詳しく見ることができます。