对汉语有边界编码的词语编码的点击选择,tkinter,python
2021/10/25 12:40:05
本文主要是介绍对汉语有边界编码的词语编码的点击选择,tkinter,python,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前很久,我用utf8的编码格式,把开源字典的一万多汉字,按照拼音重新排列,每个拼音都占有一些编码位置,每个汉字都处在某个拼音的辖域内。就像拼音输入法一样。象数组查找元素一样,先找到某拼音的首地址,然后按照字的偏移量,相加就是字的编码。
这里得到字的编码,是一个数字,把它弄成utf8格式。unicode也是数字,它们可以弄成utf8格式,那么我们自己的数字,也可以弄成utf8格式。有一种作法就是,数字→bin→从右边始,按六位截取→再补加上照应的"10"→
然后再按字节转换回来。
为了给汉语词语加上边界,数字→bin后,可以再左移2bit,这样就有了边界编码的空间。
一个汉字可以处在词语的左边界,中间,右边界,和独立(具有双边界)。分别用2,0,1,3表示。后面步骤和前面一样。
这样我们就有了带边界的汉字编码,然后解码,放到tkinter的text上,按编码冠以4不同的tag。
比如人为的短语(冬天来了),分别对应tg2,tg0,tg0,tg1,那么鼠标点击到上面,四个字背景应该统一变色。这就是(点击选择)。
代码如下,比如edw是一个编辑窗口。(如果你觉得有用,那么请点下赞)
##-----------------设置[边界] 和 [选择] tags left_tag="2" right_tag="1" middle_tag="0" iso_tag="3" edw.tag_config(left_tag, ) edw.tag_config(middle_tag, foreground = 'black') edw.tag_config(right_tag, background = 'lightblue') #右 edw.tag_config(iso_tag, foreground = 'green') #右 edw.tag_config('SELCN',background = '#FCE28C') # 汉语选择-选择底色 #-----------------------------------------------------------------单击 选择 汉语词组 def ms_c(v): pos="@%d,%d" % (v.x,v.y) b=edw.index(pos) a1=edw.tag_prevrange(left_tag,b+"+1c") if a1!=() : c=edw.tag_nextrange(right_tag,a1[1]) if c!=() and edw.compare(c[1],">",b): return a1[0],c[1] else: return () else: return() def cn_selection_range(v): r=ms_c(v) if r!=(): start,end=r edw.tag_remove('SELCN', 1.0, start) edw.tag_add('SELCN', start, end) edw.tag_remove('SELCN', end, END) edw.bind("<1>",cn_selection_range)
这篇关于对汉语有边界编码的词语编码的点击选择,tkinter,python的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30Python中''') 是什么?-icode9专业技术文章分享
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程