-1

Qt でコンパイルされた C++ コードを Maya にロードする方法はありますか?

//サンプルコード

void MainWindow::on_pushButton_clicked()
{
    ui->labell->setText("Hello");

}

実際には、テキストとプッシュ ボタンを使用して基本的な UI を作成helloしました。ボタンを押したときにテキストが変更され、それが達成されました。mayaしたがって、この接続は上記のコードで作成されたもので、コンパイル後はすべて正常に動作しますが、実際にはコードが C++ で記述されているため、ui ファイルをロードしてボタンのテキストを押しても変更されません。それで、uiファイルと一緒にそのコードもロードする代替手段はありますか?

thank you,
Anvesh Chary
4

1 に答える 1

0

Maya でファイルをロードする.uiには、以前に Python でこれを行ったことがあります。C++ についてはわかりませんが、とにかく Maya が C++ を直接解釈するとは思いません (間違っている可能性があります)。

import maya.cmds as cmds

ve = cmds.about(version=True) 
conv = "%s"%ve 
versionOutput = float(conv[0:4])
def mayaVers():
    cmds.warning("You're using Maya %s! You need to be using Maya 2011 or greater to be compatible with this script.\n" % conv);
def loadUIWindow():
    if versionOutput >= 2011:
        if (cmds.dockControl('dockUIWindow', exists=True)):
            cmds.deleteUI('dockUIWindow')
        scriptsDirectory = cmds.internalVar(usd=True)        
        UIWindow = cmds.loadUI(uiFile=scriptsDirectory + "/uifilename.ui")
        dockSoftMod = cmds.dockControl('dockUIWindow',area="left", content='uiwindowname', label="")
    else:
        mayaVers()
loadUIWindow()

私が過去に行った方法は次のとおりです。UI ファイルを Maya セッションにソースするだけの場合は、次の方法で実行できます。

明らかに、ui ファイルをスクリプト ディレクトリに配置するか、uiFilePath をファイルに変更する必要があります。

また、コンテンツ フラグdockControlは重要です。これは、ドッキングしようとしているウィンドウまたはコントロールの名前である必要があります。UI ファイル ラッパーを 'win' と呼んでいるとしましょう。コンテンツ フラグは同じである必要があります。

編集

UI ファイルを読み込んだ後、その名前がわかっている場合は、ウィンドウ内の任意の要素を編集できます。

cmds.button('ParentBtn', edit=1, command="parentObject()")

お役に立てれば。

于 2014-05-05T23:46:19.283 に答える