Есть ли какое-либо управление кривой в pyqt ?, Я добавил изображение, основанное на maya gradientControl. Я смотрю что-то похожее на pyqt, где я хочу отредактировать кривую, и каждое редактирование должно вызвать некоторый сигнал. Теперь я могу использовать sip, и я могу обернуть maya gradientControl в мое окно pyqt, но оно действительно не работает должным образом. Вот код, который я пытаюсь сделать. Это просто QWidget, поэтому очень сложно найти, что происходит, когда я добавляю точку на кривой.Curve Control With PyQt
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()
И вот захват экрана.
И пользовательский интерфейс содержит окно мянь и QFrame с. Вот майя documentation
Но я ищу некоторые чистые виджеты QT или какое-то представление о том, как мы можем это реализовать. Я пробовал с QPolygon, но не знаю, как мы можем манипулировать временем выполнения контрольной точки. Есть идеи ?
Заранее спасибо.
Я думаю, что добавление обратного вызова будет решением на данный момент, но будет приятно знать, что если кто-нибудь знает какой-нибудь виджет что-то похожее на это. – Achayan