Здравствуйте Никита. Вы писали
> Я уже, честно говоря, запутался, о чём именно вы спрашиваете
Я спрашиваю о том,где хранятся,к примеру,модули,т.е к примеру куда мне
лучше загрузить,к примеру,pandass и numpy,но я уже вроде разобрался с
этим. Ещё Вы пишете
> Проверьте по символам, что именно вы вводите. Всё должно работать.
Я всё вводил правильно. Извините меня пожалуйста,это был мой косяк. Дело
в том,что я наивно рассчитывал,что nvda обязательно озвучит мне
текст,если он есть,а оказывается это не всегда работает. Я посмотрел в
историю и у меня действительно показывался текст. Кстати по-моему в
пятом примере разбирался пример,в котором подсчитывалось количество
символов в полях редактирования. Из этого примера,хоть это ранее и
объяснялось,я не понял,зачем нам создавать пользовательский
класс,наследующийся от класса,представляющего объект поле ввода? Разве
этот модуль,который я написал,не решает ту же задачу,что и модуль в
руководстве для разработчиков? Даже если бы была задача подсчитать сумму
символов во всех полях ввода данного приложения,я бы,наверное,получил
список объектов у окна приложения и потом бы суммировал количество
символов у списка children каждого дочернего объекта окна,делая при этом
соответствующие проверки,хотя,наверное,есть более правильный способ
сделать это,ведь приложение может быть многооконное. Главное как
получить список всех объектов в данном приложении. Кстати не могли бы Вы
пожалуйста привести пример ситуации,в которых без создания
пользовательского класса,наследующегося от nvda объекта нельзя улучшить
доступность приложения?
Ещё и в модуле,который в руководстве,и в моём модуле почему-то
проявляются 3 странных бага.
1. В строке,состоящей из пробелов,табов,возврата каретки и других особых
символов,не считая букв,цифр,знаков препинания,математических знаков и
других служебных знаков,nvda ничего не говорит,что не
удивительно,поскольку значение этого поля ввода почему-то равно None.
2. Почему-то если в поле ввода кроме не особых символов,присутствует
возврат каретки и,возможно,символ перевода строки,хотя в последнем я не
уверен,количество символов считается не правильно поскольку,как я
понял,возврат каретки и,возможно,перевод строки,считаются как 2 символа.
Неужели python считает возврат каретки как 2 отдельных символа - \ и
r,ведь именно так он записывается в неформатированных строках т.е \r.
3. Почему-то этот модуль не считает количество символов больше чем
4096,т.е я точно знаю,что у меня гораздо больше чем 4096 символов,но
nvda говорит,что количество символов у меня 4096. Подскажите
пожалуйста,как эти баги исправить. Ниже будет код модуля,который я
написал,чтобы доказать,что для решения задачи,поставленной в
руководстве,совсем не обязательно создавать пользовательский класс.
# -*- coding: utf-8
import appModuleHandler,ui,api,controlTypes
class AppModule(appModuleHandler.AppModule):
def script_speakHowMutchCharactersInEditableFeald(self,gesture):
obj=api.getFocusObject()
ui.message(str(len(obj.value))) if obj.windowClassName == "Edit" and
obj.role == controlTypes.ROLE_EDITABLETEXT else None
__gestures={"kb:NVDA+l":"speakHowMutchCharactersInEditableFeald"}