libreoffice macro - toggle enablevisible on a textfield

与世无争的帅哥 提交于 2021-02-08 03:34:11

问题


I'm using python macro to do things to a libreoffice writer file. And I'd like a possibility to toggle the EnableVisible flag of a TextField.

That means, toggle the little flag that you can use, when double clicking on that field, to make it visible or invisible.

So far I got this in my code :

import uno

def toggle_field(field_title):
    document = XSCRIPTCONTEXT.getDocument()
    textfields = document.getTextFields()
    enum = textfields.createEnumeration()
    while enum.hasMoreElements():
        tf = enum.nextElement()
        if tf.VariableName == field_title:
            visibility = tf.getPropertyValue('EnableVisible') #wrong
            tf.EnableVisible = not visibility                 #wrong
            tf.update()                                       #maybe right

This give me that

com.sun.star.beans.UnknownPropertyException: Unknown property: Enabled (Error during invoking function toggle_field in module (...)file.py (: Unknown property: EnableVisible

Also, if i comment te first wrong line, the second wrong line give me

com.sun.star.beans.UnknownPropertyException: Unknown property: Enabled (Error during invoking function toggle_field in module (...)file.py (: EnableVisible


update :

tf.IsFieldDisplayed = False

or

tf.setPropertyValue('IsFieldDisplayed', False)

is no longer an unknown property, but i got this error message :

com.sun.star.beans.UnknownPropertyException: IntrospectionAccessStatic_Impl::setPropertyValueByIndex(), property at index 13 is readonly (Error during invoking function toggle_field in module (...)file.py (: IntrospectionAccessStatic_Impl::setPropertyValueByIndex(), property at index 13 is readonly

what seems unfair, because it is not readonly in the doc, and BASIC can modify it (https://wiki.documentfoundation.org/images/b/b0/BH5009-Macros.pdf page 19)


回答1:


After a common research effort, it turns out that the property is called IsVisible:

 tf.IsVisible = not tf.IsVisible


来源:https://stackoverflow.com/questions/50679134/libreoffice-macro-toggle-enablevisible-on-a-textfield

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!