Qt QTreeView - 当条件不满足时恢复到以前的选择
Posted
技术标签:
【中文标题】Qt QTreeView - 当条件不满足时恢复到以前的选择【英文标题】:Qt QTreeView - Revert to previous selection when condition not met 【发布时间】:2011-08-25 14:31:48 【问题描述】:在 QTreeView 选择更改时,我想恢复到以前的选择,如果某个 条件不满足。
例如:
void Editor::treeFolderSelected(QModelIndex const& index)
if(widget)
if(!widget->trySaveChanges())
//revert to previous, validation failed
return;
//do normal behaviour
目前我没有看到直接的方法来做到这一点,因为QModelIndex
没有提供有关之前选择的任何信息。
是否有人对实现此功能的最佳方式有任何建议?
【问题讨论】:
【参考方案1】:int lastSelection = -1;
bool abortEvent = false;
void Editor::treeFolderSelected(QModelIndex const& index)
if (abortEvent)
abortEvent = false;
return;
if(widget)
if(!widget->trySaveChanges())
if (lastSelection != -1)
abortEvent = true;
select(lastSelection);
return;
lastSelection = index;
【讨论】:
【参考方案2】:视图选择有其自己的模型QItemSelectionModel
,带有为您提供新选择和先前选择的信号。
【讨论】:
以上是关于Qt QTreeView - 当条件不满足时恢复到以前的选择的主要内容,如果未能解决你的问题,请参考以下文章
Qt - QPushButtons 代替 QTreeView 项目
qt QComboBox setView 到 QTreeView 不能做 setCurrentIndex