Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ubuntu上的PyGObject在python中进行Gtk拼写检查_Python_Gtk - Fatal编程技术网

使用Ubuntu上的PyGObject在python中进行Gtk拼写检查

使用Ubuntu上的PyGObject在python中进行Gtk拼写检查,python,gtk,Python,Gtk,我使用Python和GTK创建了一个小助手应用程序。我以前从未使用过GTK。根据对的评论,我使用了PyGObject接口 现在我想将拼写检查添加到我的Gtk.TextBuffer中 我在包管理器中找到了一个名为GtkSpell的库和一个关联的python GtkSpell,但是当我尝试导入它时,它失败了,出现了“ImportError:无法从gtk导入名称TextView”,我想这意味着它使用的是PyGtk而不是PyGObject 有没有办法让PyGObject工作? 或者其他一些我可以使用的预

我使用Python和GTK创建了一个小助手应用程序。我以前从未使用过GTK。根据对的评论,我使用了PyGObject接口

现在我想将拼写检查添加到我的Gtk.TextBuffer中

我在包管理器中找到了一个名为GtkSpell的库和一个关联的python GtkSpell,但是当我尝试导入它时,它失败了,出现了“ImportError:无法从gtk导入名称TextView”,我想这意味着它使用的是PyGtk而不是PyGObject

有没有办法让PyGObject工作?
或者其他一些我可以使用的预制GTK拼写检查系统?

我担心PyGObject接口足够新,GtkSpell尚未更新以使用它。据我所知,没有其他预先制作的GTK拼写检查器。

我昨天写了一个,因为我有同样的问题,所以它有点alpha,但工作正常。您可以从以下位置获取源:。它需要,我只在Archlinux上用Python3测试它。如果有些东西不起作用,请在Github上填写错误报告

您必须使用
python3 setup.py install安装它。它由两个包组成,
gtkspellcheck
用于拼写检查,而
pylocale
则为诸如
de_de
en_US
之类的语言代码提供人类可读的国际化名称

因为还没有文档,所以举个例子:

#-*-编码:utf-8-*-
导入区域设置
从gtkspellcheck导入拼写检查器,语言,语言_存在
从gi.repository将Gtk作为Gtk导入
对于代码,请使用以下语言命名:
打印('代码:%5s,语言:%s'(代码,名称))
window=gtk.window.new(gtk.WindowType(0))
view=gtk.TextView.new()
如果存在语言(locale.getdefaultlocale()[0]):
拼写检查器=拼写检查器(视图,locale.getdefaultlocale()[0])
其他:
拼写检查器=拼写检查器(视图)
窗口。设置默认大小(600400)
添加(视图)
window.show_all()
window.connect('delete-event',lambda小部件,事件:gtk.main\u quit)
gtk.main()

Sweet。因此,它与py2.7开箱即用。我将gtkspellcheck导入和if-else放入我的程序中。虽然setup.py没有找到locale.db,但如果我在程序中复制gtkspellcheck和locale目录,一切正常。此外,在切换记录时,我通过替换gtk.TextBuffer重新加载缓冲区文本(不确定为什么这样做),因此我必须在替换后创建拼写检查器,并调用recheck_all。尽管如此,端到端包括问题,最多10分钟来集成这个,非常感谢。GtkSpell非常糟糕,这个库非常棒,所以我将它后移植到PyGtk并添加了一些内容: