I played around a bit and it seems like you both are right.
You can grab the viewer-widget, but when I simply create a pixmap from it I
get a white square with overlays (roto, roi, etc.)


from PySide import QtGui, QtCore

for i in QtGui.qApp.allWidgets():
  # the panes are named!
  if i.windowTitle() == 'Viewer1':
    #
QtGui.QPixmap.grabWidget(i).save('T:\\nukeviewertests\\complete-viewer.png',
'png')
    for id, child in enumerate(i.findChildren(QtGui.QWidget)):
      # lazy way to figure out what's interesting
      #
QtGui.QPixmap.grabWidget(child).save('T:\\nukeviewertests\\'+str(id)+'.png',
'png')
      if id == 0:
        # this seems to be the viewer bbox starting at bottom left
        print child
        child.setStyleSheet("""QWidget { border: 2px solid green;}""")
      elif id == 1:
        # this seems to be the complete viewer area we are after
        print child
        child.setStyleSheet("""QWidget { border: 2px solid red;}""")


Seems like there is more going on than simply drawing a widget.
Did you try using *nukescripts.captureViewer*? Might be a more elegant
solution.

Best,
Carl



Mads Lund <madshl...@gmail.com> schrieb am Di., 25. Okt. 2016 um 21:09 Uhr:

Guess i don't remember correctly then...

On Tue, Oct 25, 2016 at 9:41 PM, Nathan Dunsworth <nathandunswo...@gmail.com
> wrote:

Incorrect...

You can grab the pixmap of the viewer if you do it correctly.

On Tue, Oct 25, 2016 at 12:40 PM, Mads Lund <madshl...@gmail.com> wrote:

The viewer is a seperate GL thing if i remember correctly so in python it
just appears all black sadly.

On Tue, Oct 25, 2016 at 6:49 PM, Fredrik Averpil <fredrik.aver...@gmail.com>
wrote:

I’m trying to figure out how I can find the viewer’s widget (and if you
have more than one viewer, I’ll just settle with the first one).

Does anyone have an idea on how it can be fetched?

I’ve tried to loop over all widgets in QtGui.qApp.topLevelWidgets(),
identified which ones are layouts and then iterated through their contents…
but I haven’t found anything resembling a viewer.

I need the widget object, as my goal is to be able to grab a screenshot of
it using QtGui.QPixmap.grabWidget(widget):

screenshot = QtGui.QPixmap.grabWidget(widget)
filepath = os.path.expanduser("~/screenshot.png")
screenshot.save(filepath, 'png')

Any ideas?

Regards,
Fredrik
​

_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python



_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python



_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python


_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to