我有QTableView的实例。我想打开一个对话框来编辑所选行的数据。当我从弹出菜单或快捷方式使用命令时,它按预期工作,但当我使用双击显示对话框时,我的鼠标移动事件以某种方式被取消,直到我在对话框中单击。我想第二次点击的鼠标升级事件会被发送到对话框而不是主窗口。
目前我正在使用以下黑客攻击:
void MainWindow::on_tableView_doubleClicked ( const QModelIndex& )
{
QTimer::singleShot ( 100, this, SLOT ( on_macEdit_triggered() ) );
}
100ms的delyed trigering为双击事件提供了完成其工作的时间,然后显示带有鼠标移动事件的对话框。
有没有更好的方法来解决这个问题?