The Foundry Nuke——在 QLabel 上显示动画值
The Foundry Nuke – Display an animated value on a QLabel
我目前正在尝试根据 NUKE(或 Maya)时间轴在 QLabel
(QLineEdit
也可以)中显示一个值。
我正在使用 Nuke 运行 代码,我想显示基于当前帧的值以显示如下内容:
当前帧为1001
。如果我更改为框架 1002
,我希望 QLabel
相应地更改。
有办法吗?
import PySide.QtGui as QtGui
import PySide.QtCore as QtCore
def test():
class framePanel(QtGui.QWidget):
super(framePanel, self).__init__(self):
layout = QtGui.QVBoxLayout(self)
self.label = QtGui.QLabel('This is frame 1001')
layout.addWidget(self.label)
framePanel = framePanel()
framePanel.show()
test()
谢谢。
我已经为 Mac 版本的 The Foundry Nuke 11.2v4 编写了以下代码,因此有一个 PySide2
模块而不是适用于以前版本的 Nuke 的 PySide
。此外,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动画!
我目前正在尝试根据 NUKE(或 Maya)时间轴在 QLabel
(QLineEdit
也可以)中显示一个值。
我正在使用 Nuke 运行 代码,我想显示基于当前帧的值以显示如下内容:
当前帧为1001
。如果我更改为框架 1002
,我希望 QLabel
相应地更改。
有办法吗?
import PySide.QtGui as QtGui
import PySide.QtCore as QtCore
def test():
class framePanel(QtGui.QWidget):
super(framePanel, self).__init__(self):
layout = QtGui.QVBoxLayout(self)
self.label = QtGui.QLabel('This is frame 1001')
layout.addWidget(self.label)
framePanel = framePanel()
framePanel.show()
test()
谢谢。
我已经为 Mac 版本的 The Foundry Nuke 11.2v4 编写了以下代码,因此有一个 PySide2
模块而不是适用于以前版本的 Nuke 的 PySide
。此外,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动画!