例えば日本語のキーボードや、中国語のキーボードのように、リストウィジェットを出してその後スムーズに元の編集へと帰りたいのですが、フォーカスがそちらの方へ移ってしまいます。
すぐに元のエディタへと戻るように、フォーカスを変化させたいのですが、どうすればよろしいでしょうか?

ちなみに、テキストエディタは、MainWindowに備えられたQGraphicsViewに、QGraphicsSceneを備えた上で、セットされたQTextEditの場合とします。

色々Focus系をいじってみたのですが、いまいちわかりませんでした。

追記
前までは、releaseEvent内に入れていたコードを、リストウィジェットをshow()した後に入れ込めば、すぐにリストウィジェットが消え、元の処理に帰ることができました。

しかし、私が現在実装しようとしているコードは、なぜかフォーカスがはずれてしまい、カーソル自体が点滅しなくなり、どこにカーソルがあるのかわからなくなります。

focusWidget()で調べても、確かにその編集中のウィジェットがフォーカスを有していますし、なぜこのようなことが起るのかわかりません。
どこにフォーカスが移ったとしても、その後フォーカスを、常にピンポイントでダイレクトにセットするような、そんな方法はご存知ありませんか?

以下はサンプルコードです。

from PySide import QtCore
from PySide import QtGui

import sys

class MainWindow(QtGui.QMainWindow):
    def __init__(self,parent=None):
        super(MainWindow,self).__init__(parent=None)
        self.mainview = QtGui.QGraphicsView()
        self.mainscene = QtGui.QGraphicsScene()
        self.maintextedit = CustomTextEdit()

        self.mainscene.addWidget(self.maintextedit)
        self.mainview.setScene(self.mainscene)
        self.setCentralWidget(self.mainview)
class CustomTextEdit(QtGui.QTextEdit):
    def __init__(self,parent=None):
        super(CustomTextEdit,self).__init__(parent=None)
        self.listwidget = QtGui.QListWidget()
        self.listwidget.setFocusPolicy(QtCore.Qt.NoFocus)
    def keyPressEvent(self,event):
        self.listwidget.show()
       self.listwidget.clearFocus()        
        self.activateWindow()
        self.setFocus()
        return QtGui.QTextEdit.keyPressEvent(self,event)
    def keyReleaseEvent(self,event):

        self.listwidget.setHidden(True)
        return QtGui.QTextEdit.keyReleaseEvent(self,event)
def main():
    try:
        QtGui.QApplication([])
    except Exception as e:
        print(20,e)
    mainwindow = MainWindow()
    mainwindow.show()
    sys.exit(QtGui.QApplication.exec_())
if __name__ == "__main__":
    main()