Houdini 18.5 Pythonスクリプト hou hou.qt

hou.qt.mimeType module

ドラッグアンドドロップ操作でデータを識別する際に使用するHoudiniのMIMEタイプの列挙値。

On this page

hou.qt.mimeType.channelPath

application/sidefx-houdini-channel.path

アニメーションチャンネルのフルパス。 ノードパスとアニメーションチャンネル名はスラッシュで区切られます。

hou.qt.mimeType.chopTrackPath

application/sidefx-houdini-chop.track.path

アニメーショントラックのフルパス。 CHOPノードパスとトラック名はスペースで区切られます。

hou.qt.mimeType.galleryEntryName

application/sidefx-houdini-gallery.entry.name

ギャラリーエントリーの名前。

hou.qt.mimeType.itemPath

application/sidefx-houdini-item.path

ネットワークビューア内のアイテムのフルパス。 例えば、このアイテムにはネットワークボックスが該当します。

hou.qt.mimeType.nodeFlagPath

application/sidefx-houdini-node.flag.path

ノードフラグのフルパス。 ノードパスとフラグ名はスラッシュで区切られます。

hou.qt.mimeType.nodePath

application/sidefx-houdini-node.path

ノードのフルパス。

hou.qt.mimeType.orboltNodeTypeName

application/sidefx-houdini-orbolt.node.type.name

Orboltストアーからインストールされたノードタイプの名前。

hou.qt.mimeType.paneTabName

application/sidefx-houdini-pane.tab.name

ペインタブの名前。

hou.qt.mimeType.parmPath

application/sidefx-houdini-parm.path

ノードパラメータのフルパス。 ノードパスとパラメータ名はスラッシュで区切られます。

hou.qt.mimeType.persistentHandleName

application/sidefx-houdini-persistent.handle.name

持続ハンドルの名前。

hou.qt.mimeType.primitivePath

application/sidefx-houdini-primitive.path

ジオメトリプリミティブのフルパス。 SOPノードパスとプリミティブ名はコロンで区切られます。

例えば、/obj/foo/mysop:/alembic/foo/primです。

hou.qt.mimeType.shelfName

application/sidefx-houdini-shelf.name

シェルフの名前。

hou.qt.mimeType.shelfToolName

application/sidefx-houdini-shelf.tool.name

シェルフツールの名前。

hou.qt.mimeType.takeName

application/sidefx-houdini-take.name

テイクの名前。

hou.qt.mimeType.usdPrimitivePath

application/sidefx-houdini-usd.primitive.path

USD Primのフルパス。

hou.qt.mimeType.usdPrimitivePython

application/sidefx-houdini-usd.primitive.python

LOPノードからUSD PrimにアクセスするためのPythonエクスプレッション。

hou.qt.mimeType.usdPropertyPath

application/sidefx-houdini-usd.property.path

USDプロパティのフルパス。

hou.qt.mimeType.usdPropertyPython

application/sidefx-houdini-usd.property.python

LOPノードからUSDプロパティにアクセスするためのPythonエクスプレッション。

Examples

Qtウィジェットでhou.qt.mimeType値を使用することで、ドロップした色々なタイプのHoudiniデータを受け入れることができます。

例:

def dropEvent(self, event):
    mime_data = event.mimeData()

    # ノードパスがドロップされたかどうかをチェックします。
    data = mime_data.data(hou.qt.mimeType.nodePath)
    if not data.isEmpty():
        node_path = str(data)

        print "Dropped node path:", node_path
        return

    # パラメータパスがドロップされたかどうかをチェックします。
    data = mime_data.data(hou.qt.mimeType.parmPath)
    if not data.isEmpty():
        parm_path = str(data)

        print "Dropped parameter path:", parm_path
        return

    # MIMEデータに保存されているプレーンテキストをプリントします。
    print "Dropped text:", mime_data.text()

Note

特定のHoudini MIMEタイプに対するドラッグアンドドロップオペレーションには複数のデータを含めることができます。 そのデータのセパレータにはTab文字を使用します。

以下のコードは、複数のデータを制御する例です:

def dropEvent(self, event):
    mime_data = event.mimeData()

    if not data.isEmpty():
        # 複数のノードパスがTab文字で区切られているので、文字列データを分割します。
        node_paths = str(data).split("\t")

        print "Dropped node path(s):", node_paths
        return

    data = mime_data.data(hou.qt.mimeType.parmPath)
    if not data.isEmpty():
        # 複数のパラメータパスがTab文字で区切られているので、文字列データを分割します。
        parm_paths = str(data).split("\t")

        print "Dropped parameter path(s):", parm_paths
        return

    print "Dropped text:", mime_data.text()

Qtウィジェットからドラッグアンドドロップオペレーションを開始すると、特定のHoudini MIMEタイプに対してデータを設定することができます。 一部のネイティブHoudiniウィジェットは、ドロップしたデータのMIMEタイプに応じて異なるドロップアクションを実行します。

以下のコードは、ドラッグアンドドロップオペレーションを開始して、HoudiniノードパスをDragオブジェクトに保存する例です:

def mouseMoveEvent(self, event):
    # 特定の条件が満たされた場合(LMBが押された状態でマウスを少しだけ動かした場合)にのみドラッグオペレーションを開始します。
    # この例では、架空の`self.should_start_drag`メンバー変数をチェックして、そのような条件をチェックしています。
    if self.should_start_drag:
        drag = QtGui.QDrag(self)
        mime_data = QtCore.QMimeData()

        # ノードパスをMIMEデータに保存します。
        node = hou.node("/obj/myNode")
        mime_data.setData(hou.qt.mimeType.nodePath, node.path())

        # さらに、汎用テキストドロップを受け入れるウィジェット用にノードパスをプレーンテキストMIMEタイプのデフォルトとして保存します。
        mime_data.setText(node.path())

        # ドラッグアンドドロップオペレーションを開始します。
        drag.setMimeData(mime_data)
        drag.exec_()

Tab文字をセパレータとして使用することで、複数のHoudini固有のMIMEタイプのデータを渡すこともできます。

例:

def mouseMoveEvent(self, event):
    if self.should_start_drag:
        drag = QtGui.QDrag(self)
        mime_data = QtCore.QMimeData()

        # MIMEデータに複数のノードパスを保存します。
        node1 = hou.node("/obj/myNode1")
        node2 = hou.node("/obj/myNode2")
        node3 = hou.node("/obj/myNode3")
        node_paths = [node1.path(), node2.path(), node3.path()]
        str_node_paths = "\t".join(node_paths)
        mime_data.setData(hou.qt.mimeType.nodePath, str_node_paths)

        # さらに、汎用テキストドロップを受け入れるウィジェット用にノードパスをプレーンテキストMIMEタイプのデフォルトとして保存します。
        mime_data.setText(str_node_paths)

        # ドラッグアンドドロップオペレーションを開始します。
        drag.setMimeData(mime_data)
        drag.exec_()

hou.qt