Nah, I skip the docs. In general, unless someone has been exceedingly diligent 
about generating some nice Sphinx documentation, I find it easier to just read 
the code and do some live inspection. Handily enough, pretty much everything in 
nukescripts is pure Python.

-Nathan



From: Fredrik Averpil 
Sent: Monday, October 07, 2013 3:10 AM
To: Nuke Python discussion 
Subject: Re: [Nuke-python] How to access UI elements from panel?

Many thanks Nathan. That was exactly what I was looking for. 

I'm just wondering... I was looking through the API docs, but I had a hard time 
finding anything that could lead me up to calling the customKnob (although I 
now find it when doing a search on that website).

Where do you go to look up stuff like this?
Are you using the API documentation?

Regards,
Fredrik






On Mon, Oct 7, 2013 at 5:05 AM, Nathan Rusch <nathan_ru...@hotmail.com> wrote:

  `registerWidgetAsPanel()` returns a PythonPanel instance when create=True 
(its `.addToPane()` method also returns a reference to itself), and the panel 
has a PyCustom_Knob stored in an attribute called `customKnob`. The 
PyCustom_Knob class then has a `.getObject()` method, which returns a simple 
holder for the actual Qt object instance (stored in a `widget` attribute).

  So, to get from the registered panel to the Qt object, use:

  panel = panels.registerWidgetAsPanel(name, title, identifier, 
create=True).addToPane(pane)
  gui = panel.customKnob.getObject().widget


  -Nathan



  From: Fredrik Averpil 
  Sent: Sunday, October 06, 2013 4:48 AM
  To: Nuke Python discussion 
  Subject: [Nuke-python] How to access UI elements from panel?

  Hi, 

  I am having issues with accessing UI elements when having created a panel in 
a script which creates both regular windows and panels.

  I need to access the UI elements, from both windows and panels, like this: 
gui.listWidget.addItem('hello')
  ...and that works perfectly fine if I create a regular floating window 
(dockedWindow = False), but I can't make it to work when I create panels 
(dockedWindow = True).

  Any ideas?




  class HelloWorld(form, base):
  def __init__(self, parent=None):
  super(HelloWorld, self).__init__(parent)
  # ...


  def run():
  dockedWindow = True


  if dockedWindow:
  pane = nuke.getPaneFor('Properties.1')
  global gui
  gui = panels.registerWidgetAsPanel( moduleName + 'HelloWorld' , windowTitle, 
('uk.co.thefoundry.'+windowObject+'Window'), True).addToPane(pane)
  else:
  global gui
  gui = HelloWorld()
  gui.show()




  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

Reply via email to