Python 铸造厂核武器&x2013;在QLabel上显示动画值

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(

我目前正试图在基于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()

谢谢。

我已经为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
。你能给我举几个例子看看吗?