最後の旅を始めよう

-黒の英雄譚・零-

MAYA Python どっ基礎講座‗11 『UIテンプレート』

2024年09月14日 | MAYA_Pyhon...

前回、ChatGPTを使って自分好みのツールを作り放題になったところで
オリジナルツールを、UIにまとめたく成ってきたのではないでしょうか?


そこで、以下のUIテンプレートに、作ったツールを入れていく方法を解説します。



#---------------------------------------------------------------------------------------------------
def fTool_UI():
    
    cmds.window( title = "UI_Template", widthHeight = (200, 350) )
    
    # Menu Bar Layout ----------------------------------------------------------
    cmds.menuBarLayout()
    cmds.menu( label = "Editor" )
    cmds.menuItem( label = "エディタ_01", command =( "" ) )
    cmds.menuItem( label = "エディタ_02", command =( "" ) )
    cmds.menuItem( divider = True )
    cmds.menuItem( label = "エディタ_03", command =( "" ) )
    cmds.menu( label = "Help" )
    cmds.menuItem( label = "マニュアル", command =( "" ) )
    cmds.setParent( ".." )
    
    # Tabs Layout --------------------------------------------------------------
    oTabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
    
    # [ Tab01 ] Tab ------------------------------------------------------------
    oTab01 = cmds.scrollLayout()
    cmds.tabLayout( oTabs, edit =True, tabLabel=(oTab01, "Tab01"))
    
    cmds.frameLayout( label = "Frame_01", collapsable = True, collapse = False, width = 170, backgroundColor = [0.36,0.39,0.48] )
    cmds.button( label="機能01", command= "")
    cmds.button( label="機能02", command= "")
    cmds.button( label="機能03", command= "")
    cmds.separator( height = 5, style = "in" )#-----------
    cmds.setParent( ".." )
    
    cmds.frameLayout( label = "Frame_02", collapsable = True, collapse = False, width = 170, backgroundColor = [0.36,0.39,0.48] )
    cmds.button( label="機能04", command= "")
    cmds.button( label="機能05", command= "")
    cmds.button( label="機能06", command= "")
    cmds.separator( height = 5, style = "in" )#-----------
    cmds.setParent( ".." )
    cmds.setParent( ".." )
    
    # [ Tab02 ] Tab ------------------------------------------------------------
    oTab02 = cmds.scrollLayout()
    cmds.tabLayout( oTabs, edit =True, tabLabel =(oTab02, "Tab02"))
    
    cmds.frameLayout( label = "Frame_03", collapsable = True, collapse = False, width = 170, backgroundColor = [0.36,0.39,0.48] )
    cmds.button( label="機能07", command= "")
    cmds.button( label="機能08", command= "")
    cmds.button( label="機能09", command= "")
    cmds.separator( height = 5, style = "in" )#-----------
    cmds.setParent( ".." )
    
    cmds.frameLayout( label = "Frame_04", collapsable = True, collapse = False, width = 170, backgroundColor = [0.36,0.39,0.48] )
    cmds.button( label="機能10", command= "")
    cmds.button( label="機能11", command= "")
    cmds.button( label="機能12", command= "")
    cmds.separator( height = 5, style = "in" )#-----------
    cmds.setParent( ".." )
    cmds.setParent( ".." )
    
    cmds.showWindow()
    
fTool_UI()
#---------------------------------------------------------------------------------------------------


ちょっと長いですが、このコードを走らせると以下の様なUIが作られます。



この、UIテンプレートの構成は
メニューバー、タブ、フレームのレイアウトで組んでおります。
以下に、それぞれの解説を致します。





メニューバーの編集



menuBarLayout」コマンド以下がメニューバーの内容のコードです。
menu」コマンドでメニュータイトルを決め
menuItem」コマンドでプルダウンメニューの中身を作成していきます。


試しに「エディタ_01」に「ハイパーグラフ」を適用してみましょう。
まず「menuItem」コマンドの「label」フラグの名前を「ハイパーグラフ」にします。
次に「command」フラグの「""」内にハイパーグラフを開くコマンドを入れます。

cmds.HypergraphHierarchyWindow()








タブレイアウトの編集



タブの名前を変えるには、
tabLayout」コマンドの「tabLabel」フラグの「""」内を書き換える事で変更出来ます。



タブレイアウトは若干ややこしいのですが、
一度、「tabLayout」コマンドを使い、タブを配置した後で
再び「tabLayout」コマンドでタブ名を設定する必要があります。






フレームアウトの編集



フレームレイアウトは、ツール群を纏めて見やすくします。

label」フラグでフレームタイトルに表示される名前を変更出来ます。

collapsable」フラグでレイアウトを折り畳める様になります。
また、一緒に「collapse」をTrueにする事で最初から畳まれた状態にする事も出来ます。

backgroundColor」フラグでフレームタイトルの背景色を変更出来ます。
ただし、その仕様が少し特殊で、RGBの強さが0~1で表す必要があります。
Photoshop等でRGBの強さの最高値は255ですが、
そこから色を移植する場合は、数値を255で割り算する必要があります。

一つ一つ割り算をしても良いのですが、それだと非常に面倒なので、
いっぺんに計算出来るスクリプトを組んでみました。

#---------------------------------------------------------------------------------------------------
def fColorTranslation( vlRGB ):
    lColor = []
    for oRGB in vlRGB:
        lColor.append(round(oRGB/255,2))
    print("-"*75+"\n"+str(lColor))
    
fColorTranslation([ 46, 49, 146 ]) #カラーのPGBを記入
#---------------------------------------------------------------------------------------------------

fColorTranslationのValueに、
RGB値を入れると計算後の数値を吐き出してくれます。










前項 → 10_ChatGPTの活用
一覧へ

関連-------------------------------------
Python_MAYA機能メモ
Python_MAYA_ちょっとしたツール集
Python_エラーメモ


編集
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« MAYA Python どっ基礎講座‗10... | トップ | オリジナルTシャツ販売サイト... »
最新の画像もっと見る

コメントを投稿

MAYA_Pyhon...」カテゴリの最新記事