pyqt にカーブ コントロールはありますか? Maya gradientControl に基づく画像を添付しました。曲線を編集したい pyqt と似たようなものを探しています。編集ごとに信号をトリガーする必要があります。今は sip を使用でき、maya gradientControl を pyqt ウィンドウにラップできますが、実際には期待どおりに動作しません。これが私が試しているコードです。これはただの QWidget であるため、曲線上にポイントを追加するときに何が起こっているのかを見つけるのは非常に困難です。
import os
import maya.cmds as cmds
import maya.mel as mel
import maya.OpenMayaUI as mui
import sys
import sip
from PyQt4 import QtGui, QtCore, uic
baseUI = os.path.join(os.path.dirname(__file__), "range_ctrl.ui")
baseUIClass, baseUIWidget = uic.loadUiType(baseUI)
def getMayaWindow():
windowPointer = mui.MQtUtil.mainWindow()
return sip.wrapinstance(long(windowPointer), QtCore.QObject)
def convertToQT(controlName):
controlPoniter = mui.MQtUtil.findControl(controlName)
if controlPoniter is not None:
return sip.wrapinstance(long(controlPoniter), QtCore.QObject)
class MayaRangeCtrl(baseUIWidget, baseUIClass):
def __init__(self, parent=getMayaWindow()):
super(baseUIWidget, self).__init__(parent)
self.setupUi(self)
self.setObjectName("mayaRangeCtrl")
self.setWindowTitle("Range Control")
self.p1_vbox = QtGui.QVBoxLayout(self.frame)
self.range_ctr = cmds.gradientControlNoAttr( 'mayaaaa', h=90)
mayaQTObj = convertToQT(self.range_ctr)
self.p1_vbox.addWidget(mayaQTObj)
self.setCentralWidget(self.frame)
self.show()
def main():
myWindow = MayaRangeCtrl()
def run():
main()
そして、これがスクリーンキャプチャです。
また、UI には mian ウィンドウと QFrame が含まれています。マヤのドキュメントはこちら
しかし、私はいくつかの純粋な QT ウィジェットまたはこれを実装する方法について考えています。QPolygon を試してみましたが、コントロール ポイントの実行時間を操作する方法がわかりません。何か案が ?
前もって感謝します。