libreoffice宏 - 在文本字段上启用可切换

时间:2018-06-04 11:05:49

标签: python libreoffice

我正在使用python宏来处理libreoffice编写器文件。我希望有可能切换TextField的EnableVisible标志。

这意味着,当双击该字段时,切换可以使用的小标志,使其可见或不可见。

到目前为止,我在我的代码中得到了这个:

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

这给了我那个

  

com.sun.star.beans.UnknownPropertyException:未知属性:已启用(在模块(...)file.py中调用函数toggle_field时出错(:未知属性:EnableVisible

另外,如果我评论第一个错误的行,第二个错误的行给我

  

com.sun.star.beans.UnknownPropertyException:未知属性:已启用(在模块(...)file.py中调用函数toggle_field时出错(:EnableVisible

更新:

tf.IsFieldDisplayed = False

tf.setPropertyValue('IsFieldDisplayed', False)

不再是未知属性,但我收到此错误消息:

  

com.sun.star.beans.UnknownPropertyException:IntrospectionAccessStatic_Impl :: setPropertyValueByIndex(),索引13处的属性是readonly(在模块(...)file.py中调用函数toggle_field时出错(:IntrospectionAccessStatic_Impl :: setPropertyValueByIndex() ,索引13的财产是只读

什么似乎不公平,因为它在文档中不是只读的,BASIC可以修改它(https://wiki.documentfoundation.org/images/b/b0/BH5009-Macros.pdf第19页)

1 个答案:

答案 0 :(得分:2)

经过共同的研究,结果证明该属性被称为IsVisible

 tf.IsVisible = not tf.IsVisible