pyqt中是否有任何曲線控制?我附加了一個基於maya gradientControl的圖像。我正在尋找一些與pyqt類似的地方,我想編輯曲線,每個編輯都應該觸發一些信號。現在我可以使用sip,並且我可以將maya gradientControl封裝到我的pyqt窗口中,但實際上並不像預期的那樣工作。這是我正在嘗試的代碼。它只是一個QWidget,所以當我在曲線上添加一個點時很難找到發生的事情。使用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()
這裏是屏幕截圖。
和UI包含勉窗口和一個QFrame。 這裏是瑪雅人documentation
但我正在尋找一些純粹的QT小部件或一些想法,我們如何能夠實現這一點。我嘗試過使用QPolygon,但不知道如何操作控制點運行時間。任何想法 ?
在此先感謝。
我認爲現在添加回調將是一個解決方案,但是如果有人知道任何小部件類似於此,將會很高興。 – Achayan