信号は、activated(QModelIndex)
実際には、選択するという行為以上のものを指します。概念はかなり曖昧ですが、それは明示的な選択の行為のようなものです。現在の選択が変更されたという通知を探しているだけの場合は、選択モデルを取得して、その更新に接続できます。
MyView::MyView() {
QListView* view = new QListView(this);
connect(view->selectionModel(),
SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SLOT(handleSelectionChanged(QItemSelection)));
}
...
MyView::handleSelectionChanged(const QItemSelection& selection){
if(selection.indexes().isEmpty()) {
clearMyView();
} else {
displayModelIndexInMyView(selection.indexes().first());
}
}
上記のコードでdisplayModelIndexInMyView(QModelIndex)
は、の現在のハンドラスロットにactivated(QModelIndex)
置き換えclearMyView()
、何も選択されていないときに実行したいものに置き換えます。
これを行うには多くの方法があり、正直なところ、正規の方法が何であるかはわかりませんが、これはあなたにとってうまくいくと思います。