首页 > 编程语言 >用Python开发输入法后台(7)——关于规则的规则

用Python开发输入法后台(7)——关于规则的规则

时间:2023-05-30 22:23:31浏览次数:59  
标签:输入法 Python 候选词 消息 规则 keyCode

我又重构了一遍输入法, 目的是定义输入法规则的规则, 只要遵循这些规则, 就可以方便的制定新的输入规则.
我的输入法规则如下:

  • 规则文件名: ImeRule.py
  • 需要实现函数
    • OnFilterKeyDown
      • 原型: f(keyCode:int,keyStates:list,msg:dict)->bool
      • 功能: 键被按下的消息, 根据返回值确定给定的键是忽略还是接受
    • OnFilterKeyUp
      原型同上, 键抬起时的消息, 根据返回值确定给定的键是忽略还是接受
    • OnKeyDown
      前面的两个消息如果返回true, 就会触发这个消息, 这里正式开始处理输入规则;
      比如说, 对于字母显示候选词, 对于数字选择候选词上屏;
    • OnKeyUp
      同理, 不过此消息系统默认处理就可以了, 不用特别关注;
  • 然后, 还定义了一些函数, 方便开发, 比如:
    • IsLetter: 判断keyCode是否是字母
    • IsNumber: 是否是数字

标签:输入法,Python,候选词,消息,规则,keyCode
From: https://www.cnblogs.com/huzhongqiang/p/17444517.html

相关文章

  • Python读excel——xlrd
    Python读excel——xlrdPython读取Excel表格,相比xlwt来说,xlrd提供的接口比较多,但过程也有几个比较麻烦的问题,比如读取日期、读合并单元格内容。下面先看看基本的操作:图表数据整体思路为,打开文件,选定表格,读取行列内容,读取表格内数据详细代码如下:importxlrdfromdatetimeimportda......
  • python daal test
     importosimportsysfromdaal.algorithmsimportlow_order_momentsfromdaal.data_managementimportFileDataSource,DataSourceIfacefromdaal.data_managementimport(readOnly,NumericTableIface,BlockDescriptor,BlockDescriptor_Float32,BlockDescriptor_......
  • python二维数组初始化
    >>>a=[[0]*3foriinrange(3)]>>>a[[0,0,0],[0,0,0],[0,0,0]]>>>a[1][1]=121>>>a[[0,0,0],[0,121,0],[0,0,0]]>>>a[0][0]=11>>>a[[11,0,0],[0,121,0],[0,0,0]]>>>......
  • python pickle to json
    ref:https://gist.github.com/Samurais/567ebca0f59c612eb977065008aad867 '''Convertapklfileintojsonfile'''importsysimportosimportpickleimportjsondefconvert_dict_to_json(file_path):withopen(file_path,&......
  • python spark 求解最大 最小 平均 中位数
    rating_data_raw=sc.textFile("%s/ml-100k/u.data"%PATH)printrating_data_raw.first()num_ratings=rating_data_raw.count()print"Ratings:%d"%num_ratings#In[35]:rating_data=rating_data_raw.map(lambdaline:line.split(&quo......
  • Python爬取豆瓣电影Top250 + 数据可视化
    我的这篇博客的一些代码解释python大作业电影演员数据分析1.爬取数据1.1导入以下模块importosimportreimporttimeimportrequestsfrombs4importBeautifulSoupfromfake_useragentimportUserAgentfromopenpyxlimportWorkbook,load_workbook1.2获取每页......
  • 【python教程】map、多进程与进度条
    转载:【python教程】map、多进程与进度条-知乎(zhihu.com)今天讲讲我在实习中学到的一点python知识,核心内容是多进程,也即我们常说的并行计算。map首先提个问题,给出一个列表,对列表中的每个元素都平方,代码怎么写?最简单直观的方法自然就是for循环。alist=[1,2,3,4,5,6,......
  • 万年历python
    importtkinterastkimporttkinter.ttkasttkimportdatetimeimportcalendartoday_date=datetime.date.today()today_date_year=int(today_date.year)today_date_month=int(today_date.month)today_date_week=today_date.isocalendar()date_num_list......
  • 【python】with as语句
    读文件读写文件是最常见的IO操作。python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操......
  • python基础 14
    装饰器的简易版本核心思想: 在不改变被装饰对象内部代码和原有调用方式的基础之上在添加额外的功能#给被装饰对象添加额外的功能给index函数添加统计执行时间的功能defindex():time.sleep(3)index()importtimedefindex():time.sleep(3)p......