0

我正在尝试在我的程序中创建类似于 Windows 文件资源管理器的行为,在我的项目中双击(或在选择并聚焦时按键盘上的 Enter 键)QAbstractItemView将在新窗口中“打开”该项目,并且单击该项目(当它已被选中时)将允许用户使用一个小的就地文本字段重命名该项目。

不幸的是,我试图让它工作的各种尝试要么导致双击发生,要么根本只有一个或另一个工作。

这是我迄今为止最好的尝试:

// Create QTreeView instance
m_myTree = ...;

m_myTree->setEditTriggers(QAbstractItemView::SelectedClicked);
connect(m_myTree , &QAbstractItemView::activated, []{ /* Open dialog here */ });

我也尝试过覆盖void QAbstractItemView::edit(const QModelIndex& index, QAbstractItemView::EditTrigger trigger, QEvent* event),但使用它QAbstractItemView::DoubleClickedtrigger参数中过滤似乎并没有太大的作用:(

4

0 回答 0