with this one you can dock the panel wherever you want !

import nuke
import nukescripts

class PrintPath(nukescripts.PythonPanel):
    def __init__(self):
        self.reads = nuke.allNodes('Read')
        nukescripts.PythonPanel.__init__( self, 'PrintPath', 'printpath')

        self.textKnob = nuke.Multiline_Eval_String_Knob('text')
        self.textKnob.setValue(str('\n'.join([n['file'].value() for n in
self.reads])))

        self.refreshButton = nuke.PyScript_Knob('refresh')

        self.addKnob(self.textKnob)
        self.addKnob(self.refreshButton)

    def knobChanged(self, knob):
        if knob == self.refreshButton:
            self.textKnob.setValue(str('\n'.join([read['file'].value() for
read in nuke.allNodes('Read')])))

def printPath():
    nukescripts.registerPanel( 'printpath', printPath)
    PrintPath().show()

printPath()



On 20 July 2011 09:55, Olivier Jezequel <[email protected]>wrote:

> That's definitely better, yesterday i couldn't find how to write the
> correct expression with display.
> Thanks everybody
>
>
> Ivan Busquets wrote:
>
>> If it's just for the purpose of displaying that list in a floating
>> window you can copy-paste from, why not just use nuke.display() as
>> John suggested? You even get an "update" button for free, so you can
>> leave that floating window open if you want and rerun the script any
>> time by hitting "update".
>>
>> Quick example:
>>
>> nuke.display("str('\\n'.join([**n['file'].value() for n in
>> nuke.allNodes('Read')]))", nuke.root(), "Files of all Reads in
>> root...")
>>
>>
>>
>> On Tue, Jul 19, 2011 at 11:53 AM, Howard Jones <[email protected]>
>> wrote:
>>
>>
>>> Here's one I wrote earlier - adds line numbers and puts it in the shell
>>> and
>>> script editor but having the script editor then open would be nice.
>>>
>>> Only draw back with it is the script editor adds formatting and on you
>>> need
>>> to remember its ctl+shift+c to copy in a linux shell otherwise you kill
>>> Nuke.
>>> Looking at it the result bit was to get something to print in
>>> nuke.message
>>> but I found it clunky - needed a way to set a larger width which may
>>> exist.
>>>
>>> import sys
>>> def listReadNodes():
>>>    result=''
>>>    line=0
>>>    # sort out nodes to find
>>>    sn=nuke.selectedNodes()
>>>    an=nuke.allNodes()
>>>    if not len(sn):
>>>        print 'nothing selected - listing all reads'
>>>        nodes2use=an
>>>    else:
>>>        print 'listing selected reads'
>>>        nodes2use=sn
>>>    # iterate through nodes and print the file path
>>>    for i in nodes2use:
>>>        if 'Read' in i.Class():
>>>            line+=1
>>>            t= str(line)+') '+i['file'].value()
>>>            #print to shell and script editor
>>>            print >> sys.stderr,  t
>>>            result+=t+'\n'
>>>    nuke.message('The list has been printed to the Shell and to the Script
>>> Editor.\nCopy and paste from there.')
>>>
>>>
>>> ______________________________**__
>>> From: Olivier Jezequel <[email protected]**>
>>> To: Nuke Python discussion 
>>> <nuke-python@support.**thefoundry.co.uk<[email protected]>
>>> >
>>> Sent: Tue, 19 July, 2011 19:12:28
>>> Subject: Re: [Nuke-python] forcing nuke to show the script editor
>>>
>>> Nice one,
>>>
>>> Thanks
>>>
>>> Nathan Rusch wrote:
>>>
>>>
>>>> readPaths = [n['file'].value() for n in nuke.allNodes('Read')]
>>>> nuke.message('\n'.join(**readPaths))
>>>>
>>>>
>>>> -Nathan
>>>>
>>>> -----Original Message----- From: Olivier Jezequel
>>>> Sent: Tuesday, July 19, 2011 10:58 AM
>>>> To: Nuke Python discussion
>>>> Subject: Re: [Nuke-python] forcing nuke to show the script editor
>>>>
>>>> I like the idea of the nuke.message() but the problem is it shows 1 path
>>>> at a time and show the next one when you click ok, because it is a loop.
>>>> I want the path in one message. Is that possible ??
>>>>
>>>> thanks
>>>>
>>>> Michael Havart wrote:
>>>>
>>>>
>>>>> you can use the nuke.message(str(n['file'].**value()))
>>>>>
>>>>>
>>>>> On 19 July 2011 18:19, Olivier Jezequel
>>>>> <[email protected]
>>>>> <mailto:olivier-je@moving-**picture.com<[email protected]>>>
>>>>> wrote:
>>>>>
>>>>>    Can use show me an exemple ? I tried few way of writing that they
>>>>>    all return an error or a missing argument, the doc is quiet short
>>>>>    on that.
>>>>>    that's what i am tring to show up :
>>>>>
>>>>>    for n in nuke.allNodes ( "Read" ) :
>>>>>        print n['file'].value()
>>>>>
>>>>>
>>>>>    cheers
>>>>>    O
>>>>>
>>>>>
>>>>>    John Vanderbeck wrote:
>>>>>
>>>>>        Have you looked at nuke.display() ?
>>>>>
>>>>>        -----Original Message-----
>>>>>        From: 
>>>>> nuke-python-bounces@support.**thefoundry.co.uk<[email protected]>
>>>>>        
>>>>> <mailto:nuke-python-bounces@**support.thefoundry.co.uk<[email protected]>
>>>>> >
>>>>>        
>>>>> [mailto:nuke-python-bounces@**support.thefoundry.co.uk<[email protected]>
>>>>>        
>>>>> <mailto:nuke-python-bounces@**support.thefoundry.co.uk<[email protected]>>]
>>>>> On
>>>>>        Behalf Of
>>>>>        Olivier Jezequel
>>>>>        Sent: Tuesday, July 19, 2011 12:42 PM
>>>>>        To: Nuke Python discussion
>>>>>        Subject: [Nuke-python] forcing nuke to show the script editor
>>>>>
>>>>>        Hiya,
>>>>>        I am writing a little utility tool to print out the path of
>>>>>        input files.
>>>>>
>>>>>        Is there a way to force nuke to open a script editor to show
>>>>>        the result (for exemple popping as a floating window), if the
>>>>>        script editor is not in the GUI already ??
>>>>>
>>>>>        thanks
>>>>>        Olivier
>>>>>        ______________________________**_________________
>>>>>        Nuke-python mailing list
>>>>>        
>>>>> Nuke-python@support.**thefoundry.co.uk<[email protected]>
>>>>>        
>>>>> <mailto:Nuke-python@support.**thefoundry.co.uk<[email protected]>
>>>>> >,
>>>>>        http://forums.thefoundry.co.**uk/<http://forums.thefoundry.co.uk/>
>>>>>
>>>>> http://support.thefoundry.co.**uk/cgi-bin/mailman/listinfo/**
>>>>> nuke-python<http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python>
>>>>>        ______________________________**_________________
>>>>>        Nuke-python mailing list
>>>>>        
>>>>> Nuke-python@support.**thefoundry.co.uk<[email protected]>
>>>>>        
>>>>> <mailto:Nuke-python@support.**thefoundry.co.uk<[email protected]>
>>>>> >,
>>>>>        http://forums.thefoundry.co.**uk/<http://forums.thefoundry.co.uk/>
>>>>>
>>>>> http://support.thefoundry.co.**uk/cgi-bin/mailman/listinfo/**
>>>>> nuke-python<http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python>
>>>>>
>>>>>
>>>>>    ______________________________**_________________
>>>>>    Nuke-python mailing list
>>>>>    
>>>>> Nuke-python@support.**thefoundry.co.uk<[email protected]>
>>>>>    
>>>>> <mailto:Nuke-python@support.**thefoundry.co.uk<[email protected]>
>>>>> >,
>>>>>    http://forums.thefoundry.co.**uk/ <http://forums.thefoundry.co.uk/>
>>>>>    http://support.thefoundry.co.**uk/cgi-bin/mailman/listinfo/**
>>>>> nuke-python<http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python>
>>>>>
>>>>>
>>>>> ------------------------------**------------------------------**
>>>>> ------------
>>>>>
>>>>> ______________________________**_________________
>>>>>
>>>>>
>>>>>
>>>>
> ______________________________**_________________
> Nuke-python mailing list
> Nuke-python@support.**thefoundry.co.uk<[email protected]>,
> http://forums.thefoundry.co.**uk/ <http://forums.thefoundry.co.uk/>
> http://support.thefoundry.co.**uk/cgi-bin/mailman/listinfo/**nuke-python<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