Scripter/Snippet/Main

See also the boilerplate.py script in the Scribus documentation.

from __future__ import division import sys
 * 1) !/usr/bin/env python
 * 2) -*- coding: utf-8 -*-

try: import scribus except ImportError,err: print "This Python script is written for the Scribus scripting interface." print "It can only be run from within Scribus." sys.exit(1)

def main(argv): """This is a documentation string. Write a description of what your code   does here. You should generally put documentation strings ("docstrings")    on all your Python functions.""" #########################   #  YOUR CODE GOES HERE  # #########################

# ... some code...

scribus.progressTotal(n)

scribus.setRedraw(False)

# some code which manipulates frame and you don't want scribus to update while doing it

i=i+1 scribus.progressSet(i)

scribus.progressReset

# let scribus redraw again

scribus.setRedraw(True) scribus.progressReset

def main_wrapper(argv): """The main_wrapper function disables redrawing, sets a sensible generic   status bar message, and optionally sets up the progress bar. It then runs    the main function. Once everything finishes it cleans up after the main    function, making sure everything is sane before the script terminates.""" try: scribus.statusMessage("Running script...") scribus.progressReset main(argv) finally: # Exit neatly even if the script terminated with an exception, # so we leave the progress bar and status bar blank and make sure # drawing is enabled. if scribus.haveDoc: scribus.setRedraw(True) scribus.statusMessage("") scribus.progressReset

if __name__ == '__main__': main_wrapper(sys.argv)
 * 1) This code detects if the script is being run as a script, or imported as a module.
 * 2) It only runs main if being run as a script. This permits you to import your script
 * 3) and control it manually for debugging.