全局通栏广告

爱盲论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2201|回复: 3
打印 上一主题 下一主题

NVDA插件开发:导入第三方模块

[复制链接]

6

主题

18

帖子

60

积分

新手上路

Rank: 1

积分
60
跳转到指定楼层
楼主
发表于 2020-3-8 20:04:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
楼主 =高山=说:
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会朗读出熟悉又陌生的乘法口诀!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

247

主题

6625

帖子

1万

积分

金牌会员

Rank: 5Rank: 5

积分
16369
QQ
沙发
发表于 2020-3-8 22:16:17 | 只看该作者
沙发 zmy说:
感谢大神的分享。
本帖来自安卓秘书
回复 支持 反对

使用道具 举报

79

主题

385

帖子

2143

积分

高级会员

Rank: 4

积分
2143
板凳
发表于 2020-3-9 09:31:55 | 只看该作者
板凳 pak说:
这个读屏软件2019v02版下载不下来不知道咋回事升级也升不上去我现在用的是201802版的
本帖来自微秘视障助手
回复 支持 反对

使用道具 举报

2

主题

195

帖子

1782

积分

高级会员

Rank: 4

积分
1782
地板
发表于 2020-3-9 12:24:16 | 只看该作者
地板 bug说:
收藏
本楼来自 掌中世界安卓版
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| 爱盲论坛  

GMT+8, 2024-11-23 21:15 , Processed in 0.059964 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表