Я написал следующий код для Mac версии The Foundry Nuke 11.2v4, поэтому вместо PySide
есть модуль PySide2
, который используется для предыдущих версий Nuke.Кроме того, есть некоторые различия, касающиеся QtWidgets
против QtGui
.Для получения текущего кадра вы должны использовать nuke.frame()
.
Вот пример с QLabel
:
import nuke
from PySide2 import QtGui, QtCore
from PySide2 import QtWidgets
def theTest():
class framePanel(QtWidgets.QWidget):
label = QtWidgets.QLabel("The current frame is: %s" % nuke.frame())
label.show()
theTest()
А вот пример QMessageBox
с динамически изменяемым значением :
import nuke
import os.path
from PySide2 import QtGui, QtCore
from PySide2 import QtWidgets
def signalEmitter():
qApplication = QtWidgets.QApplication.activeWindow()
qApplication.emit(QtCore.SIGNAL('wasChanged()'))
nuke.addKnobChanged(signalEmitter, nodeClass='Viewer')
qmBox = QtWidgets.QMessageBox(None)
qmBox.setText('The current frame is: %s' % nuke.frame())
qmBox.connect(QtCore.SIGNAL("wasChanged()"), lambda: qmBox.setText('The current frame is: %s' % nuke.frame()))
qmBox.setModal(False)
qmBox.show()
QMessageBox
не modal
.
Нажмите на это изображение, чтобы воспроизвести анимацию в формате GIF!