<div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: Candara;color: #000000">Greetings Maurizio.<div><br></div><div>Yes, this certainly does help!  After a little playing around, it looks like this is going to lead me to a solution.  :-)</div><div><br></div><div>There are still a few things I don't fully understand.</div><div><br></div><div>I actually did experiment with reimplementing <span style="font-family: Courier New">closeEditor()</span> awhile back.  But I reimplemented it in the <i>delegate</i>, not in the <i>view</i>.  I thought I understood <span style="font-family: Courier New">closeEditor()</span> to be a member of <span style="font-family: Courier New">QAbstractItemDelegate</span>, not <span style="font-family: Courier New">QTableView</span>.  I don't quite understand how it is possible to override this method in the <span style="font-family: Courier New">QTableView</span> definition.  (Still, empirically, it seems to work, so I must be wrong).</div><div><br></div><div><span style="font-size: 12pt;line-height: 1.5">One slight problem with your code as written:  I found that if a delegate editor is active and I mouse click on a different cell, the <span style="font-family: Courier New">mousePressEvent</span> actually registers before the <span style="font-family: Courier New">closeEditor()</span> method is called.  You assign <span style="font-family: Courier New">self.currentEditor</span> inside <span style="font-family: Courier New">closeEditor()</span>, so on the first mouse click it isn't set yet.  However, if I assign <span style="font-family: Courier New">currentEditor</span> when the editor is <i>created</i> (i.e., in the delegate's <span style="font-family: Courier New">createEditor()</span> method), then it seems to work.</span></div><div><span style="font-size: 12pt;line-height: 1.5"><br></span></div><div><span style="font-size: 12pt;line-height: 1.5">And with that, I find I don't seem to need to reimplement <span style="font-family: Courier New">closeEditor()</span> at all.  Just catching a <span style="font-family: Courier New">mousePressEvent</span>, checking that <span style="font-family: Courier New">self.state()</span> is <span style="font-family: Courier New">EditState</span> and calling <span style="font-family: Courier New">self.currentEditor.setFocus()</span> to set the focus back to the editor widget seems to be enough.</span></div><div><span style="font-size: 12pt;line-height: 1.5"><br></span></div><div><span style="font-size: 12pt;line-height: 1.5"><i>[Modified code that demonstrates proof of concept is attached]</i></span></div><div><span style="font-size: 12pt;line-height: 1.5"><br></span></div><div><span style="font-size: 12pt;line-height: 1.5">I will also need to similarly catch keystrokes that try to change to focus to a different cell.  But that is easier, because those events go to the delegate, so can be handled within the delegate's <span style="font-family: Courier New">eventFilter()</span> method.</span></div><div><span style="font-size: 12pt;line-height: 1.5"><br></span></div><div><span style="font-size: 12pt;line-height: 1.5">I <i>still</i> don't really understand why it didn't work when I tried catching and suppressing the <span style="font-family: Courier New">FocusOut</span> event.  I feel like I followed the documentation properly.  But I guess it's somehow related to the fact that there are multiple levels of widgets that the events are passing through.</span></div><div><br></div><div>In any event, it looks like I have a workaround.  Thank you!</div><div><br></div><div>/John</div></div>