Есть ли способ загрузить скомпилированный qt-код c ++ в Maya?
// пример кода
void MainWindow::on_pushButton_clicked()
{
ui->labell->setText("Hello");
}
на самом деле я был создан основной пользовательский интерфейс с текстом и кнопкой, то, что я хочу, это текст должен изменить на hello
когда я нажимаю кнопку, и я достиг этого. так что эти соединения были сделаны с приведенным выше кодом, после компиляции это все работает нормально, но когда я загружаю файл пользовательского интерфейса в maya
и я нажимаю кнопку текст не меняется, потому что на самом деле код был написан на C ++. Итак, есть ли альтернатива для загрузки этого кода вместе с файлом пользовательского интерфейса?
thank you,
Anvesh Chary
Чтобы загрузить .ui
файл в Maya, я ранее делал это на 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, это то, как это можно сделать.
Очевидно, вам нужно будет либо поместить свой файл пользовательского интерфейса в каталог сценариев, либо изменить uiFilePath на свой файл.
Кроме того, флаг содержимого в dockControl
важно, это должно быть имя окна или элемента управления, который вы пытаетесь закрепить. Допустим, вы назвали свою оболочку UI-файла ‘win’, флаг содержимого должен быть таким же.
РЕДАКТИРОВАТЬ
После загрузки файла пользовательского интерфейса вы можете редактировать любой элемент в окне, если вы знаете его имя.
cmds.button('ParentBtn', edit=1, command="parentObject()")
Надеюсь это поможет.