PySide を使用して、Python と Qt でデスクトップ アプリをコーディングしています。トップレベルのアイテムがその子とは異なるタイプのオブジェクトであるツリー ビューを表示する必要があります。具体的には、最上位アイテムは Git リポジトリであり、その子は作業ツリー内のディレクトリです。
リポジトリの場合、そのパスと現在チェックアウトされているブランチを表示したいと考えています。ディレクトリの場合、その名前を表示したいだけです。
現時点では、下位のモデル オブジェクト (メソッドから取得) をQAbstractItemModel
子孫に使用させ、結果の文字列をフォーマットする方法を決定することでこれを行います。isinstance
internalPointer()
この種の二重ディスパッチを行うための、より Pythonic な (またはより不格好な) 方法があるかどうか疑問に思っていました。
私がやりたくないのは、Git リポジトリと作業ツリー ファイルのモデル クラスでこの目的のためのメソッドを定義することです。これは SRP に違反すると思うからです。
どんな考えやアイデアでも大歓迎です。また、誰かがこの質問のより不格好なタイトルを考えられる場合は、私に知らせてください ;)