タイトルが示すように、gtk.TreeView
モデルがソートおよびフィルター処理された があります。ドキュメントによると、「ドラッグ アンド ドロップによる行の並べ替えは、並べ替えられていないストアでのみ機能します。」. 与えられた唯一の他の情報は、外部ソースの使用に関連していますが、この場合は必要ありません。
とにかく、drag-dest の受信信号とドラッグドロップ信号にハンドラーを提供して実装しようとしましたが、それでも次のエラーが発生します。
GtkWarning: GtkTreeDragDest インターフェイスをサポートしないモデルを使用し、ドラッグ アンド ドロップを有効にする場合は、GtkTreeView のデフォルトの 'drag_data_received' ハンドラーをオーバーライドする必要があります。これを行う最も簡単な方法は、'drag_data_received' に接続し、シグナル ハンドラーで g_signal_stop_emission_by_name() を呼び出して、デフォルト ハンドラーが実行されないようにすることです。gtktreeview.c のデフォルト ハンドラのソース コードを見て、ハンドラが何をすべきかを理解してください。(gtktreeview.c は GTK ソース コードにあります。) C 以外の言語から GTK を使用している場合は、派生などを介して、既定のハンドラーをオーバーライドするより自然な方法があるかもしれません。
それにも関わらず、まだ実装していませんが、クラッシュしないので動作させることができそうです。それにもかかわらず、これは私がむしろ受けたくない警告です。
それで、Pythonに相当するものはありg_signal_stop_emission_by_name
ますか、それとも私はこれについて間違った方法をとっていますか?