Good idea, since using a global variable isn't the sexiest thing to do in my 
opinion ( but it sure works!)



Sent from my iPhone

On Aug 29, 2011, at 8:17 PM, "[email protected]" 
<[email protected]> wrote:

> Sorry for the late reply, just saw it. I was under the impression that 
> nuke.getPaneFor should return the pane, and from there you should be able to 
> access the object somehow, but you are right, it doesn't do it. I'll put in a 
> feature request I guess, sorry to have mislead you.
> 
> 
> On Sun, Aug 28, 2011 at 10:55 AM, Ivan Busquets <[email protected]> 
> wrote:
> 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 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
> 
> 
> _______________________________________________
> 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