Glad it helped, Hugo.

That's what we're all here for :)


On Sat, Aug 27, 2011 at 6:33 PM, Hugo Léveillé <[email protected]> wrote:

>  You rock
>  As usual, thanks
>
>
>
>   On Sat, 27 Aug 2011 15:30 -0700, "Ivan Busquets" <[email protected]>
> wrote:
>
> Not in front of Nuke right now, but I believe you should be able to do that
> within the __init__ method of your Widget subclass
>
> I.E.
>
> import nuke
> import PyQt4.QtCore as QtCore
> import PyQt4.QtGui as QtGui
> from nukescripts import panels
>
> class NukeTestWindow(QtGui.QWidget):
>   def __init__(self, parent=None):
>
>       global myPanel
>       myPanel = self  // or do your own logic here to check if a previous
> panel already existed, etc
>
>       QtGui.QWidget.__init__(self, parent)
>       self.setLayout( QtGui.QVBoxLayout() )
>       self.myLineEdit = QtGui.QLineEdit("Hello World")
>       self.layout().addWidget( self.myLineEdit )
>       QtCore.QObject.connect(self.
> myLineEdit,
> QtCore.SIGNAL("returnPressed()"), self.lineEditCB)
>
>   def lineEditCB(self):
>       nuke.message("%s" % self.myLineEdit.text())
>
>
> And then, after an instance of your panel already exists, you should be
> able to do:
>
> myPanel.myLineEdit.text()
>
> Keep in mind that, with the above, every new instance of NukeTestWindow
> would overwrite your global variable, so you might want to check if one
> exists (if you want to enforce that only one instance of your Panel should
> exist), or keep track of all the instances in a dictionary, for example.
>
>
>
>  On Sat, Aug 27, 2011 at 12:46 PM, Hugo Léveillé <[email protected]>wrote:
>
> Sorry for last empty mail
>
> I tried various ways to assign the panel to a variable but I can't seem
> to have access to it. Using the previous exemple with the line edit, how
> would you do that ? I must be missing something obvious :)
>
>
>
> On Sat, 27 Aug 2011 10:34 -0700, "Ivan Busquets"
>
>  <[email protected]> wrote:
> > Ah, I see.
> >
> > In that case I think I would do what pixelcowboy suggested (keeping a
> > global variable of your docked panel to access it later on).
> >
> > nuke.getPaneFor() will get you the dock the panel belongs to, but I'm
> > not sure you can get the panel object itself from there.
> >
> > However, if it's something that other nodes will need to query from, I
> > think it would probably be easier to use actual user knobs attached to
> > nuke.root(). Mainly because your docked panel won't get saved with the
> > nuke script.
> >
> > This may not be a problem for your application, but just saying in
> > case it makes things easier.
> >
> > Cheers,
> > Ivan
> >
> > On Sat, Aug 27, 2011 at 6:43 AM, Hugo Léveillé <[email protected]>
> > wrote:
> > > Hi Ivan
> > >
> > > No, doing action or getting knob panel value when playing inside the
> > > panel is no problem.
> > >
> > > Imagine that the panel is a custom preference panel. And that the line
> > > edit drive the default value of blur nodes. I need the querie the value
> > > of the line edit from outisde the panel. So to make it simple, once the
> > > panel is created/ docked, how would you access the line edit value in
> > > the script editor?
> > >
> > > Is it more clear?
> > >
> > > On Fri, 26 Aug 2011 23:53 -0700, "Ivan Busquets"
> > > <[email protected]> wrote:
> > >> Hi Hugo,
> > >>
> > >> You should look at the QLineEdit Class reference docs to find the
> > >> method that suits you best, but you could, for example, use the text()
> > >> method to get the text contents of your widget.
> > >>
> > >> http://doc.qt.nokia.com/latest/qlineedit.html#text-prop
> > >>
> > >> As for when/how to access that method, you'll probably want to use
> > >> signals/slots to choose when you want to trigger a certain action.
> > >>
> > >> Quick example:
> > >>
> > >> import nuke
> > >> import PyQt4.QtCore as QtCore
> > >> import PyQt4.QtGui as QtGui
> > >> from nukescripts import panels
> > >>
> > >> class NukeTestWindow(QtGui.QWidget):
> > >>    def __init__(self, parent=None):
> > >>        QtGui.QWidget.__init__(self, parent)
> > >>        self.setLayout( QtGui.QVBoxLayout() )
> > >>        self.myLineEdit = QtGui.QLineEdit("Hello World")
> > >>        self.layout().addWidget( self.myLineEdit )
> > >>        QtCore.QObject.connect(self.myLineEdit,
> > >> QtCore.SIGNAL("returnPressed()"), self.lineEditCB)
> > >>
> > >>    def lineEditCB(self):
> > >>        nuke.message("%s" % self.myLineEdit.text())
> > >>
> > >>
> > >> Is that where you were after?
> > >>
> > >> Cheers,
> > >> Ivan
> > >>
> > >>
> > >> On Fri, Aug 26, 2011 at 12:51 PM, Hugo Léveillé <[email protected]>
> > >> wrote:
> > >> > Hey
> > >> >
> > >> > Just started using docked pyqt panel inside nuke. Quick question.
> > >> >
> > >> > Let say I make this very simple panel with a single line edit
> > >> >
> > >> > =====
> > >> >
> > >> > import nuke
> > >> > import PyQt4.QtCore as QtCore
> > >> > import PyQt4.QtGui as QtGui
> > >> > from nukescripts import panels
> > >> >
> > >> > class NukeTestWindow(QtGui.QWidget):
> > >> >    def __init__(self, parent=None):
> > >> >        QtGui.QWidget.__init__(self, parent)
> > >> >        self.setLayout( QtGui.QVBoxLayout() )
> > >> >        self.myLineEdit = QtGui.QLineEdit("Hello World")
> > >> >        self.layout().addWidget( self.myLineEdit )
> > >> >
> > >> >
> > >> >
> > >> > panels.registerWidgetAsPanel('NukeTestWindow', 'Test table panel',
> > >> > 'uk.co.thefoundry.NukeTestWindow' )
> > >> >
> > >> >
> > >> > ===========
> > >> >
> > >> > Once the panel is created, how can I have access to the value of the
> > >> > line edit ? The goal would be to make some action inside nuke based
> on
> > >> > the current value of a knob inside that panel
> > >> >
> > >> > Thanks
> > >> >
> > >> >
> > >> > --
> > >> >  Hugo Léveillé
> > >> >  TD Compositing, Vision Globale
> > >> >  [email protected]
> > >> >
> > >> > _______________________________________________
> > >> > Nuke-python mailing list
> > >> > [email protected],
> http://forums.thefoundry.co.uk/
> > >> >
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
> > >> >
> > >> _______________________________________________
> > >> Nuke-python mailing list
> > >> [email protected], http://forums.thefoundry.co.uk/
> > >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
> > >>
> > >
> > >
> > > --
> > >  Hugo Léveillé
> > >  TD Compositing, Vision Globale
> > >  [email protected]
> > >
> > > _______________________________________________
> > > Nuke-python mailing list
> > > [email protected], http://forums.thefoundry.co.uk/
> > > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
> > >
> > _______________________________________________
> > Nuke-python mailing list
> > [email protected], http://forums.thefoundry.co.uk/
> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
> >
>
>
> --
>  Hugo Léveillé
>  TD Compositing, Vision Globale
>  [email protected]
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
> _______________________________________________
> Nuke-python mailing [email protected], 
> http://forums.thefoundry.co.uk/http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>  --
>  Hugo Léveillé
>  TD Compositing, Vision Globale
>  [email protected]
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to