我使用QTreeView->setSelectionModel(mode),
然后connect(qtreeview->selectionModel(),SIGNAL(currentChanged(............)));
来截获item change 消息
在处理函数:currentChanged(const QModelIndex & current, const QModelIndex & previous)
中,我需要首先判断previous所指向的值是否被改变,如果改变则提示用户并且:
setCurrentIndex(previous);
restorestate();
repaintwidget();
我发现如果用键盘改变item,则工作正常,如果用鼠标改变的话,虽然也正常,但是QTreeView 把
current 和previous之间的items全部选中,及时设置了setSelectionMode setSelcctionBehavior也不行,这是怎么回事,用其他办法作,还是是我的方法不对,还是qt的问题?