表格中有一列为
图标,想实现效果:图标编辑状态时出现一个
按钮,点击按钮弹出
文件对话框,可以选择图标文件修改图标见下图 。
使用代理实现的,在Qt4.5下正常,在5.1中就程序崩溃,分析原因发现弹出文件对话框时
setModelData会被调用。后来查看Qt源码发现在
QItemDelegate::eventFilter中5.1少了部分代码: if (QApplication::activeModalWidget() && !QApplication::activeModalWidget()->isAncestorOf(editor) && qobject_cast<QDialog*>(QApplication::activeModalWidget())) return false; 在代理类中重写了eventFilter,就都正常了。不知道在5.1中为什么去掉对对话框的支持。