Python 铸造厂核武器&x2013;在QLabel上显示动画值
我目前正试图在基于NUKE(或Maya)时间线的Python 铸造厂核武器&x2013;在QLabel上显示动画值,python,pyqt,pyside,qlabel,nuke,Python,Pyqt,Pyside,Qlabel,Nuke,我目前正试图在基于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(
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()
谢谢。我已经为Foundry Nuke 11.2v4的Mac版本编写了以下代码,因此有一个
PySide2
模块,而不是以前版本的Nuke的PySide
。此外,触摸qtwidget
与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
不是模式的
按此图片播放GIF动画 嗨,非常感谢你的回答。这基本上就是我想要做的,但我希望标签以交互方式改变。能够滚动时间线,看到标签正在动态更新,而无需重新启动代码。你知道有什么方法可以做到这一点吗?第二个例子可以做到你想要的。唯一的问题是:必须选择此窗口(才能聚焦)<代码>QtCore.SIGNAL('wasChanged()')生成作业。如果未选择此窗口–该值将停止更新。它工作正常!明天我将花一些时间用LineEdit测试这项技术,它应该以同样的方式工作。非常感谢,再次感谢。我只是想知道QWidget内部是否也可以实现动态?就像你第一个例子中的一样。我无法让它工作,谢谢,很抱歉我没有在
QWidget
内部使用dynamic
。你能给我举几个例子看看吗?