#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:
Комментарии:
1. Просто проверьте репозиторий, я видел, что функции обработки параметров все еще существуют в 2.0.5.
2. Я нашел эти методы только в Sikuli.py для 2.0.5. Однако они не отражены в классе времени выполнения. Вы можете взять предыдущие определения этих методов (до 2.0.0) и реализовать их самостоятельно. Например, «makeOpts ()» в основном «возвращает новые свойства ();»
3. Вероятно, вы правы, в ответ на вопрос, который я поднял на Github, автор сказал, что эта функция была потеряна в 2.0.5. Извинился, что я понятия не имел о Java runtime.