SikuliX не может вызвать makeOpts()

#jython #sikuli #sikuli-script #sikuli-ide #sikuli-x

#jython #sikuli #sikuli-скрипт #sikuli-ide #sikuli-x

Вопрос:

Я работаю над sikulixide-2.0.5 в Windows. Теперь я хотел бы использовать функции записи / чтения пользовательских свойств для реализации сохранения параметров приложения, так что я изучаю как показанную часть ссылки: https://sikulix-2014.readthedocs.io/en/latest/globals.html#saveOpts

Вопрос в том, что бы я ни вызывал любой API, связанный с сохранением, с фиксированным термином Opt , например makeOpts() , движок будет продолжать отвечать мне на следующую ошибку, как мне заставить ее работать?

[ошибка] Ошибка атрибута (объект ‘org.sikuli.script.support.RunTime’ не имеет атрибута ‘makeOpts’)

ссылочный код здесь, довольно простой :

 from sikuli import *

def trialOpts():
    obj = makeOpts()
    return

trialOpts()
 

В отличие от этого, другие API, такие как click(), find() , работают нормально без сообщения AttributeError , что означает, что основной движок Sikuli точно запущен.

Поскольку это собственный API Sikuli, насколько я понимаю, ему не нужно импортировать какие-либо модули? Чтобы убедиться в этом, я изучил битовые исходные коды Sikuli на Github, API с термином Opt были точно определены там в Sikuli.py :

введите описание изображения здесь

На данный момент у меня заканчиваются подсказки. Пожалуйста, вы можете помочь.

Ответ №1:

Я еще раз взглянул на самый последний код выпуска, и там доступны альтернативные методы обработки настроек (см.: org.sikuli.basics .PreferencesUser)

 from sikuli import *
from org.sikuli.basics import PreferencesUser

def trialOpts():
    obj = PreferencesUser.get()
    obj.put("foo","bar")
    print obj.get("foo","bart")
    return

trialOpts()
 

Ответ №2:

Эти удобные методы «* Opts», похоже, не существуют в версии 2.0.5. Похоже, что они были реорганизованы из существования.

Чтобы увидеть, что делают эти методы (и, возможно, воссоздать их в jython), см.:

https://www.javatips.net/api/SikuliX-2014-master/API/src/main/java/org/sikuli/script/RunTime.java

Кроме того, похоже, что в проекте github есть код, если вы используете тег до 2.0.0:

https://github.com/RaiMan/SikuliX1

Комментарии:

1. Просто проверьте репозиторий, я видел, что функции обработки параметров все еще существуют в 2.0.5.

2. Я нашел эти методы только в Sikuli.py для 2.0.5. Однако они не отражены в классе времени выполнения. Вы можете взять предыдущие определения этих методов (до 2.0.0) и реализовать их самостоятельно. Например, «makeOpts ()» в основном «возвращает новые свойства ();»

3. Вероятно, вы правы, в ответ на вопрос, который я поднял на Github, автор сказал, что эта функция была потеряна в 2.0.5. Извинился, что я понятия не имел о Java runtime.