Scripter/Snippet/Main
Jump to navigation
Jump to search
See also the boilerplate.py script in the Scribus documentation.
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import division import sys 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() # This code detects if the script is being run as a script, or imported as a module. # It only runs main() if being run as a script. This permits you to import your script # and control it manually for debugging. if __name__ == '__main__': main_wrapper(sys.argv)