デスクトップには、1つ以上のペインがあります。 各ペインには、色々なタイプのペインタブ(シーンビューア、パラメータ、ネットワークエディタなど)が複数あります。 メインのデスクトップウィンドウは、水平または垂直に2つのペインに分割することができ、各ペイン自体も水平または垂直に分割することができます。
フローティングパネルも複数のペインを含み、そのフローティングパネルを任意でデスクトップに取り付けることができます。
ペインタブ、ペイン、フローティングパネルを返すこのクラス内のメソッドは、デスクトップに取り付けられた(つまり、保存された)それらのオブジェクトだけを返します。 可視のペインタブ、ペイン、フローティングパネル、デスクトップに取り付けられていないものも含んで、それらすべてにアクセスするには、hou.ui内の関数を使用します。
hou.ui.curDesktop, hou.ui.desktops, hou.Pane, hou.PaneTab, hou.FloatingPanelも参照してください。
メソッド ¶
name()
→ str
デスクトップの名前を返します。
各デスクトップの名前は固有です。そのデスクトップの名前は、スクリプトインターフェースまたはHoudiniのどちらでも変更することができません。
setAsCurrent()
このデスクトップを現在選択しているデスクトップにします。 hou.ui.desktopsも参照してください。
このサンプルは、animateデスクトップに変更します:
desktops_dict = dict((d.name(), d) for d in hou.ui.desktops()) desktops_dict['Animate'].setAsCurrent()
panes()
→ tuple of hou.Pane
このデスクトップ内のペインを返します。フローティングパネルがデスクトップに取り付けられていれば、その結果には、そのフローティングパネル内のペインが含まれます。
以下の関数は、ペインがデスクトップに取り付けられているかどうかに関係なく、すべての可視ペインを返します:
def allPanes(): '''ペインがデスクトップに取り付けられているかどうかに関係なく、すべての可視ペインのタプルを返します。''' # すべてのペインタブを検索し、各タブのペインがまだその結果になければ、その結果に追加します。 # ペインを固有に識別する唯一の方法は、そのidを使用することです。 ids_to_panes = {} for pane_tab in hou.ui.paneTabs(): pane = pane_tab.pane() if pane.id() not in ids_to_panes: ids_to_panes[pane.id()] = pane return ids_to_panes.values()
floatingPanels()
→ tuple of hou.FloatingPanel
このデスクトップに取り付けられたフローティングパネルすべてを返します。
このデスクトップに取り付けられていない可視フローティングパネルを含むすべての可視フローティングパネルを取得するには、hou.ui.floatingPanelsを使用します。
hou.Desktop.floatingPaneTabsも参照してください。
paneTabs()
→ tuple of hou.PaneTab
このデスクトップ内またはこのデスクトップに取り付けられているフローティングパネル内に含まれているペインタブを返します。
このメソッドは、このデスクトップに取り付けられていないフローティングペインタブを返しません。 このデスクトップへ取り付けられているかどうかに関係なく、すべての可視ペインタブを取得するには、hou.ui.paneTabsを使用します。
currentPaneTabs()
→ tuple of hou.PaneTab
このデスクトップに含まれているペインタブ、または、このデスクトップに取り付けられているフローティングパネルに含まれているペインタブの中で、現在選択されているペインタブを返します。
このメソッドは、このデスクトップに取り付けられていないフローティングペインタブを返しません。 このデスクトップに取り付けられているかどうかに関係なく、選択されているペインタブすべてを取得するには、hou.ui.currentPaneTabsを使用します。
floatingPaneTabs()
→ tuple of hou.PaneTab
このデスクトップに取り付けられているフローティングパネル内のペインタブすべてを返します。
paneTabOfType(type, index=0)
→ hou.PaneTab or None
目的のタイプのペインタブを検索して、それを返します。そのようなタブが存在しなければNoneを返します。 hou.Desktop.paneTabsと同様に、このメソッドは、デスクトップ内またはそのデスクトップに接続されたフローティングパネル内のペインタブを検索します。
このデスクトップへ取り付けられているかどうかに関係なく、すべての可視ペインタブを検索するには、hou.ui.paneTabOfTypeを使用します。
type
hou.paneTabType列挙変数。
index
目的のタイプのタブが複数あれば、このパラメータはその内のどれを返すのか決めます。
最初に見つかったタブを返すには、index=0
を使用します。
2番目に見つかったタブを返すには、index=1
を使用します。
デフォルトのindexは0です。
このメソッドはほぼ以下のように実装されています:
def paneTabOfType(self, tab_type, index=0): pane_tabs = [t for t in self.paneTabs() if t.type() == tab_type] if max(index, 0) > len(pane_tabs): return None return pane_tabs[max(index, 0)]
findPane(pane_id)
→ hou.Pane or None
指定した固有IDのペインを返します。そのようなペインがなければNone
を返します。
hou.Desktop.panesと同様に、このメソッドは、デスクトップ内またはそのデスクトップに接続されたフローティングパネル内のペインを検索します。
このデスクトップへ取り付けられているかどうかに関係なく、すべての可視ペインを検索するには、hou.ui.findPaneを使用します。
findPaneTab(name)
→ hou.PaneTab or None
指定した名前のペインタブを返します。そのようなタブがなければNone
を返します。
hou.Desktop.paneTabsと同様に、このメソッドは、デスクトップ内またはそのデスクトップに接続されたフローティングパネル内のペインタブを検索します。
その名前の頭には、任意でデスクトップ名とピリオドを付けることができます。
このデスクトップへ取り付けられているかどうかに関係なく、すべての可視ペインタブを検索するには、hou.ui.findPaneTabを使用します。
createFloatingPaneTab(pane_tab_type, position=(), size=(), python_panel_interface=None, immediate=False)
→ hou.PaneTab
単一ペインタブを含んだ新しいフローティングウィンドウを作成して返します。 このメソッドは、単一ペインタブを持つフローティングパネルを作成し、もっとタブを追加したり、パネル内のペインを分割するグラフィカルインターフェースは表示されないことに注意してください。
pane_tab_type
hou.paneTabType列挙変数。
position
新しいウィンドウのXとYの位置をそれぞれ指定した2つのfloatのタプル。 そのウィンドウは、この位置の近くで開き、必ずしもこの位置に正確ではありません。 この値が空っぽのタプルであれば、Houdiniはデフォルトの位置を選択します。
size
新しいウィンドウの幅と高さをそれぞれ指定した2つのfloatのタプル。 この値が空っぽのタプルであれば、Houdiniはデフォルトサイズを選択します。
python_panel_interface
フローティングペインタブに表示させるPython Panelインターフェースの名前。
さらに、そのインターフェース名を指定すると、Python Panelツールバーが非表示になります。
python_panel_interface
がNoneまたは存在しないインターフェースを指していた場合、
デフォルトのPython Panelペインタブがそのツールバーと一緒に表示されます。
pane_tab_type
をhou.paneTabType.PythonPanelに設定しなかった場合は、この引数は無視されます。
immediate
ウィンドウを即座に開いて、そのウィンドウの位置を正しく設定できるようにします。
また、新しいペインタブを含んだフローティングパネルには何もペインがありません。つまり、そのペインタブに対してhou.PaneTab.paneをコールすると、Noneが返されます。 そのフローティングパネルに対してhou.FloatingPanel.panesをコールすると、空っぽのタプルが返されます。 そのような最小構成のフローティングパネルに関する詳細は、hou.FloatingPanelを参照してください。
hou.Desktop.createFloatingPanelも参照してください。
以下のサンプル関数は、hou.OpNodeを受け取り、そのノードにピン留めされたフローティングパラメータペインを開きます。
def openParmPane(node): '''特定のノードに対してフローティングパラメータペインを開きます。''' pane_tab = hou.ui.curDesktop().createFloatingPaneTab(hou.paneTabType.Parm) pane_tab.setCurrentNode(node) pane_tab.setPin(True) return pane_tab
createFloatingPanel(pane_tab_type, position=(), size=(), python_panel_interface=None, immediate=False)
→ hou.FloatingPanel
フローティングパネルを作成し、それを返します。返されるフローティングパネルには、目的のタイプの1つのペインタブを含んだ1つのペインを含んでいます。
パラメータの説明は、hou.Desktop.createFloatingPaneTabを参照してください。 このメソッドは、2点でcreateFloatingPaneTabと異なります: 1点目は、これはペインタブの代わりにフローティングパネルを返します。 2点目は、このメソッドから作成されるフローティングパネルは、ロックされていないので、ユーザはペインタブを追加したり分割することができます。
以下のサンプルは、パラメータペインタブとチャンネルビューア(モーションビューア)ペインタブを持つフローティングパネルを作成します:
panel = hou.ui.curDesktop().createFloatingPanel(hou.paneTabType.Parm) pane1 = panel.panes()[0] pane2 = pane1.splitVertically() pane2.tabs()[0].setType(hou.paneTabType.ChannelViewer)
displayHelp(node_type)
最後に開いたヘルプブラウザペインタブに、指定したノードタイプのヘルプを読み込みます。 そのようなペインタブがまだ存在していなければ、ヘルプブラウザペインタブを作成します。
displayHelpPath(help_path)
最後に開いたヘルプブラウザペインタブに、指定したヘルプパスのヘルプを読み込みます。 そのようなペインタブがまだ存在していなければ、ヘルプブラウザペインタブを作成します。 このパスには、HoudiniのヘルプURL(例えば、op:Sop/copy,tool:curve)やそのままのヘルプパス(例えば、/nodes/sop/copy, shelf/curve)を指定することができます。
displayHelpPyPanel(interface_name)
最後に開いたヘルプブラウザペインタブに、指定した名前のPythonパネルのヘルプを読み込みます。 そのようなペインタブがまだ存在していなければ、ヘルプブラウザペインタブを作成します。
そのインターフェース名が無効であれば、HOM_Errorを引き起こします。
displaySideHelp(show=True)
→ hou.PaneTab
サイドヘルプペインを表示/非表示します。
showがTrue(デフォルト)の時、このメソッドはヘルプペインを表示し、ヘルプブラウザペインタブを返します。 Falseの時、このメソッドはデスクトップの端にあるヘルプブラウザペインを隠して、Noneを返します。
paneUnderCursor()
マウスカーソル下にあるhou.Paneオブジェクトを返します。
そのマウスカーソル下にペインがなければNone
を返します。
このメソッドは、このデスクトップに取り付けられていないフローティングペインを検索しません。 ペインがこのデスクトップに取り付けられているかどうかに関わらず可視ペインすべてを検索するには、hou.ui.paneUnderCursorを使用してください。
paneTabUnderCursor()
hou.Desktop.paneUnderCursorと同様ですが、代わりにマウスカーソル下にあるhou.PaneTabオブジェクトを返します。
そのマウスカーソル下にペインタブがなければNone
を返します。
このメソッドは、このデスクトップに取り付けられていないフローティングペインタブを検索しません。 タブがこのデスクトップに取り付けられているかどうかに関わらず可視ペインタブすべてを検索するには、hou.ui.paneTabUnderCursorを使用してください。