2011-04-23 12 views
3

私はPythonとGTKを使って小さなヘルパーアプリケーションを作成しました。私はかつてGTKを使ったことはありません。 http://www.pygtk.org/のコメントによると、私はPyGObjectインターフェイスを使用しました。PythonでUbuntuでPyGObjectを使ったGtkのスペルチェック

私はGtk.TextBufferにスペルチェックを追加したいと思います。

パッケージマネージャでGtkSpellと関連するpython-gtkspellというライブラリが見つかりましたが、インポートしようとすると "ImportError:gtkから名前TextViewをインポートできません"というエラーが表示されます。これはPyGtk PyGObjectの代わりに。

これはPyGObjectでうまくいくのですか? 代わりに私が使用できるいくつかの他のpremade GTKスペルチェックシステム?

答えて

3

私は同じ問題を抱えていたので、昨日書いたので、少しアルファですが、うまくいきます。ソースはhttps://github.com/koehlma/pygtkspellcheckから取得できます。それはpyenchantを必要とし、私はArchlinux上のPython 3でそれをテストするだけです。何かがうまくいかない場合は、Githubのバグレポートに記入してください。

python3 setup.py installと一緒にインストールする必要があります。これは、スペルチェックを行うgtkspellcheckde_DEまたはen_USのような言語コードのための人間が読める国際化された名前を提供するpylocaleの2つのパッケージで構成されています。

何のドキュメントはまだありませんので、例:

# -*- 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() 
+0

甘いです。だから、それはpy2.7と一緒に働いた。私はgtkspellcheckのインポートとif elseをとり、プログラムにドロップしました。 setup.pyではlocale.dbが見つからないというエラーが出ますが、gtkspellcheckとロケールのディレクトリを自分のプログラムの中にコピーしても問題ありません。また、レコードを切り替えるときにgtk.TextBufferを置き換えることでバッファテキストをリロードします(私がなぜそれを行うのかわかりません)ので、置換後にスペルチェッカーを作成してrecheck_allを呼び出さなければなりませんでした。それでも、問題を含めて終わりにこれを統合する10分のトップ、ありがとうございます。 –

+0

GtkSpellは本当にうまくいきます。このライブラリは素晴らしいので、PyGtkにバックポートして、いくつか追加しました:https://github.com/koehlma/pygtkspellcheck/issues/2 – Havok

1

私は、PyGObjectインターフェイスが新しく、GtkSpellがそれをまだ使用するように更新されていないことを恐れています。私が知る限り、GTKの他のスペルチェッカーはありません。

関連する問題