3

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をインスタンス化しますか?

4

3 に答える 3