【发布时间】:2014-04-11 15:49:02
【问题描述】:
我正在尝试使用箭头键在 QTreeView 中选择一个项目,但找不到属于此类的返回突出显示项目索引的方法。 到目前为止,我只能通过单击鼠标来选择项目:
connect(m_QTreeView, SIGNAL(clicked(QModelIndex)), this, SLOT(ItemTreeClicked(QModelIndex)));
但如果我尝试使用键盘箭头更改焦点,则当前索引不会更新。 老实说,即使我的“鼠标单击”版本也不完美,因为我使用了一个初始化为 false 并在我进入插槽 ItemTreeClicked 时传递为 true 的布尔值。我必须这样做,因为当我尝试从列表中删除一个项目时,如果我还没有点击任何内容,我的应用程序就会崩溃。
我在 QtCreator 4.7.4 上使用 c++ 进行编码
任何帮助或示例代码将不胜感激。
干杯。
【问题讨论】:
-
您可以在
QTreeView::selectionChanged()虚函数中处理选择变化,或者使用树视图选择模型的QItemSelectionModel::selectionChanged()信号。 -
至少在 Qt5 中这是默认行为。箭头键向上/向下移动和进/出树。当然只有在你可以使用 Qt5 时才有用。