爱盲论坛

标题: NVDA插件开发:导入第三方模块 [打印本页]

作者: =高山=    时间: 2020-3-8 20:04
标题: NVDA插件开发:导入第三方模块
NVDA插件开发:导入第三方模块
找了很久终于找到了,记下笔记!
#添加路径再导入
import os.path
import sys
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(__file__)), 'modules'))
import sqlite3
del sys.path [0]


--------
来自论坛的中文翻译:
如何将外部Python包导入全局插件脚本
贾马尔·马祖瑞<贾马尔@ ...>
NVDA安装中是否包含sqlite3标准模块?我通过使用带有sqlite3模块的Python db API添加了一些数据库存储功能来增强了我的脚本。但是,脚本解释器无法识别导入命令。
……
贾马尔
詹姆斯·斯科尔斯
在附加组件的globalPlugins目录中,创建一个目录来保存您的额外依赖关系。您可以随心所欲地调用它,但是在此示例中,我将其命名为“模块”。在modules目录中,粘贴c:\ python27 \ lib中的sqlite3目录,以及c:\ python27 \ dlls中的_sqlite3.pyd和sqlite3.dll文件。.pyd和.dll文件应位于modules目录的根目录下,而不是sqlite文件夹内。
接下来,在您的主要.py文件中,使用以下代码:
import os.path
import sys
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(__file__)), 'modules'))
import sqlite3
del sys.path [0]

------------
sqlite3我也 不知道要怎么用,按照上面没有报错,应该就是导入成功了!
示例:
有一个模块里有一个获取乘法口诀的方法,要调用这个方法。
#允许从开发者实验目录加载自定义代码
NVDA菜单->选项(P)子菜单p设置(S)...s高级,13之13项,
高级属性页警告!,我知道更改这些设置可能会导致NVDA无法正常工作。复选框已选中
允许从开发者实验目录加载自定义代码复选框已选中
应用(A)按钮Alt+a
打开开发者实验目录按钮

#
在globalPlugins里创建libs文件夹,再在里面创建xmokuai.py
globalPlugins\libs\xmokuai.py代码:

def getChengFaKouQue():
    lists=[[b,a,b*a] for a in range(1,10) for b in range(1,a+1)]
    dict={1:'一',2:'二',3:'三',4:'四',5:'五',6:'六',7:'七',8:'八',9:'九',10:'十'}
    s=''
    for list in lists:
        a,b=dict[list[0]],dict[list[1]]
        v=list[2]
        if v<10: v='得,'+dict[v%10] #小于10
        elif v%10==0: v=dict[v//10]+',十' # 十的倍数
        elif v//10==1: v='十,'+dict[v%10] #11,12,13,
        else : v=dict[v//10]+',十,'+dict[v%10] #大于20

        s=s+a+','+b+'。'+str(v)+'。'
    return s


#
在globalPlugins里创建importDemo.py
输入代码:
import os.path
import sys
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(__file__)), 'libs'))
import xmokuai
del sys.path [0]


from scriptHandler import script
import ui

import globalPluginHandler
class GlobalPlugin(globalPluginHandler.GlobalPlugin):
        @script(gesture="kb:control+windows+alt+numpad1")
        def script_peiChengFaKouQue(self,gesture):
                cfkq=xmokuai.getChengFaKouQue()
                ui.message(cfkq)
当你按下快捷键时,NVDA会朗读出熟悉又陌生的乘法口诀!


作者: zmy    时间: 2020-3-8 22:16
感谢大神的分享。
本帖来自安卓秘书
作者: pak    时间: 2020-3-9 09:31
这个读屏软件2019v02版下载不下来不知道咋回事升级也升不上去我现在用的是201802版的
本帖来自微秘视障助手
作者: bug    时间: 2020-3-9 12:24
收藏
本楼来自 掌中世界安卓版




欢迎光临 爱盲论坛 (http://aimang.net/) Powered by Discuz! X3.2