Discovering an Item's Properties

By selecting a Scribus object (image, line, textbox, etc.) and running this script, you can see the item's properties that are available to your script. This saves you having to dig through the C++ code, if you're not into that kind of thing.

Once you know what properties are available, you can try accessing them in your script by using the getProperty(objectName, propertyName) and setProperty(objectName, propertyName, propertyValue) functions. This lets you change quite a few more object properties than are exposed through the other Scripter API functions.

Please note that using the setProperty function may not always have the effect your are looking for. Changing a value using setProperty doesn't trigger any other effects that might happen when change the value in Scribus using the GUI. However, some things do work, as you can see by running these scripts:


 * Scale an Image to Fill a Frame Proportionally
 * Align an Image in its Frame
 * Image Wizard: Scale and Align an Image

This script has been updated for Scribus 1.4.0.

Save this script as ItemProperties.py, for example. from scribus import *

if haveDoc: nbrSelected = selectionCount

objList = []

for i in range(nbrSelected): objList.append(getSelectedObject(i)) for i in range(nbrSelected): try: obj = objList[i] props = "" propList = getPropertyNames(obj) for p in propList: try: props = props + p + " (" + str(getPropertyCType(obj, p)) + "): " props = props + str(getProperty(obj, p)) except: nothing = "nothing" props = props + "\n" messageBox("Property Info for " + obj, "Below is a property list for the selected object named " + obj + "\n" + props, ICON_INFORMATION) except WrongFrameTypeError: nothing = "nothing"