开发者

Gtk spell checking in python with PyGObject on Ubuntu

开发者 https://www.devze.com 2023-02-28 00:43 出处:网络
I\'ve created a little helper application using Python and GTK. I\'ve never used GTK before. As per the comment on http://www.pygtk.org/ I used the PyGObject interface.

I've created a little helper application using Python and GTK. I've never used GTK before. As per the comment on http://www.pygtk.org/ I used the PyGObject interface.

Now I would like to add spell checking to my Gtk.TextBuffer.

I found a library called GtkSpell and an associated python-gtkspell in the package manager, but when I try to import it it fails with "ImportError: cannot import name TextView from gtk", I presume this means it is using PyGtk instead of PyGObject.

Is there someway to get this working wit开发者_如何学运维h PyGObject? Or some other premade GTK spellcheck system I can use instead?


I wrote one, yesterday because I had the same problem, so it's a bit alpha but it works fine. You could get the source from: https://github.com/koehlma/pygtkspellcheck. It requires pyenchant and I only test it with Python 3 on Archlinux. If something doesn't work feel free to fill out a bug report on Github.

You have to install it with python3 setup.py install. It consists of two packages, gtkspellcheck which does the spellchecking and pylocale which provides human readable internationalized names for language Codes like de_DE or en_US.

Because there is no documentation yet, an example:

# -*- coding:utf-8 -*-

import locale

from gtkspellcheck import SpellChecker, languages, language_exists
from gi.repository import Gtk as gtk

for code, name in languages:
    print('code: %5s, language: %s' % (code, name))

window = gtk.Window.new(gtk.WindowType(0))
view = gtk.TextView.new()
if language_exists(locale.getdefaultlocale()[0]):
    spellchecker = SpellChecker(view, locale.getdefaultlocale()[0])
else:
    spellchecker = SpellChecker(view)
window.set_default_size(600, 400)
window.add(view)
window.show_all()
window.connect('delete-event', lambda widget, event: gtk.main_quit)
gtk.main()


I'm afraid that the PyGObject interface is new enough that GtkSpell hasn't been updated to use it yet. As far as I know there is no other premade GTK spell checker.

0

精彩评论

暂无评论...
验证码 换一张
取 消