Qtでは、QAbstractItemModelにこのルーチンがあります(とりわけ)
bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
親が指定されていない場合、基本的に、呼び出されるたびに新しい QModelIndex をインスタンス化します。
Python では、同じ行の意味が大きく異なります。1 つの QModelIndex のみがインスタンス化され、呼び出しごとに共有されます。
私には明確でない点は、この違いが PyQt でどのように処理されるかです。ドキュメントは C++のものから自動的に生成されたようで、その結果、デフォルトの引数のインスタンス化は同じ構文を使用しますが、意味がまったく異なるため、問題は解決されません。
もちろん、この問題は QAbstractItemModel の PyQt でのカスタム再実装にも引き継がれます。宣言するべきか
def insertRows(self, row, count, index=QtCore.QModelIndex()):
また
def insertRows(self, row, count, index=None):
インデックスがNoneの場合、新しいQModelIndexをインスタンス化しますか?