You’re basically on the right track. You need to run your slow function on a 
separate thread to avoid blocking Nuke’s GUI until it finishes, and you would 
create and update your progress bar from within that function as well so it 
will update properly in time with your processing.


import threading
import time

def dummy():
    task = nuke.ProgressTask('Examining Read Nodes...')
    reads = nuke.allNodes('Read')
    progIncr = 100.0 / len(reads)
    for i, r in enumerate(reads):
        if task.isCancelled():
            nuke.executeInMainThread(nuke.message, args=('Aborted',))
            return
        task.setProgress(int(i * progIncr))
        task.setMessage(r.fullName())
        # Placeholder for some long per-node process
        time.sleep(2)

def aMenuCommand():
    # This is the function you would actually bind to a Nuke menu command
    threading.Thread(target=dummy).start()


-Nathan



From: Luca Fiorentini 
Sent: Tuesday, September 18, 2012 10:19 AM
To: [email protected] 
Subject: [Nuke-python] progress bar

Hi!

I am trying to make a progress bar but with no success.
I took a look at the code in the guide

http://docs.thefoundry.co.uk/nuke/63/pythondevguide/basics.html#creating-progress-bar-dialogs

But I am clearly missing something.
Could someone kindly explain it to me in an easier way?
Imagine I have a function like this:

def dummy():
    for n in nuke.allNodes('Read'):
        print 'here my super slow function'

where and how should I implement the progress bar?
should I use the code from the example and then call the whole funciont in a 
new thread? like

threading.Thread( None, dummy ).start()

Thanks for your time

-- 
Luca Fiorentini - 3D Lighting Artist
My Showreel - My blog - My Flickr




--------------------------------------------------------------------------------
_______________________________________________
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