Я использую макрос Python для работы с файлом писателя libreoffice.И мне бы хотелось иметь возможность переключать флаг EnableVisible для TextField.
Это означает, что нужно переключать маленький флажок, который можно использовать при двойном щелчке по этому полю, чтобы сделать его видимым или невидимым.
Пока что я получил это в своем коде:
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: Неизвестное свойство: Enabled (Ошибка при вызове функции toggle_field в модуле (...) file.py (: неизвестное свойство: EnableVisible
Кроме того, если я прокомментирую первую неправильную строку, вторая неправильная строка даст мне
com.sun.star.beans.UnknownPropertyException: неизвестное свойство: включено (ошибка при вызове функции toggle_field в модуле (...) file.py (: EnableVisible
обновление:
tf.IsFieldDisplayed = False
или
tf.setPropertyValue('IsFieldDisplayed', False)
больше не является неизвестным свойством, но я получил это сообщение об ошибке:
com.sun.star.beans.UnknownPropertyException: IntrospectionAccessStatic_Impl :: setPropertyValueByIndex (), свойство в индексе 13 доступно только для чтения (ошибка при вызове функции toggle_field в модуле (...) file.py (: IntrospectionAccessStatic_Impl :: setPropertyValueByIndex (), свойство в индексе 13 доступно только для чтения
что кажется несправедливым, потому что он не доступен только для чтения в документе, и BASIC может его изменить (https://wiki.documentfoundation.org/images/b/b0/BH5009-Macros.pdf стр. 19)