0

我有 QTableView 的实例。我想打开一个对话框来编辑所选行中的数据。当我使用弹出菜单或快捷方式中的命令时,它按预期工作,但是当我使用双击显示对话框时,不知何故,我的鼠标移动事件被跳过,直到我在对话框内单击。我猜第二次点击的鼠标向上事件被错误地发送到对话框而不是主窗口。

目前我正在使用以下黑客:

void MainWindow::on_tableView_doubleClicked ( const QModelIndex& )
{
    QTimer::singleShot ( 100, this, SLOT ( on_macEdit_triggered() ) );
}

100ms 的延迟触发为双击事件提供了足够的时间来完成其工作,然后显示对话框以及工作中的鼠标移动事件。

有没有更好的方法来解决这个问题?

4

0 回答 0