PyQtWebEngine 中的拼写检查
Spell checking in PyQtWebEngine
我正在编写一个主要在 python 中的程序,但一些交互功能是通过与 Flask 对话的 web-app 完成的。在 python 程序中包含 web-app 会很好,所以我正在考虑使用 PyQtWebEngine。
除了我无法进行拼写检查外,它的效果出奇地好。我有 运行
self.page().profile().setSpellCheckEnabled(True)
self.page().profile().setSpellCheckLanguages({"en-GB"})
从我的 child class 中 QWebEngineView
,我检查了 isSpellCheckEnabled()
是真的。
不知是不是找不到语言。没有检测到 qWarning,如果它找不到字典,我希望如此。根据 non-python example.
的建议
我有一个从 Chromium hunspell git 复制的 en-GB.bdic
。我试过将文件放在:
<directory_my_py_file_is_in>/qtwebengine_dictionaries/en-GB.bdic
当我运行
app = QApplication(sys.argv)
print(app.applicationDirPath())
结果是
/usr/bin
所以我试过了
/usr/bin/qtwebengine_dictionaries/en-GB.bdic
这不行,因为当程序是 pip 安装时我无法编辑这个位置,但值得一试。
在任何一个地方的 .bdic
文件中,我都没有看到任何拼写检查功能。
有人在 PyQtWebEngine 中进行过拼写检查吗?我没能找到很多文档。
假设.bdic有效,那么我通过环境变量QTWEBENGINE_DICTIONARIES_PATH
建立了字典的路径,比如我把官方的例子翻译成了python,结构如下:
├── data
│ ├── icon.svg
│ ├── index.html
│ ├── spellchecker.qrc
│ └── style.css
├── dict
│ ├── de
│ │ ├── de-DE.aff
│ │ ├── de-DE.dic
│ │ └── README.txt
│ └── en
│ ├── en-US.aff
│ ├── en-US.dic
│ └── README.txt
├── main.py
├── spellchecker_rc.py
├── qtwebengine_dictionaries
│ ├── de-DE.bdic
│ └── en-US.bdic
└── README.md
main.py
# ...
CURRENT_DIR = os.path.dirname(os.path.realpath(__file__))
os.environ["QTWEBENGINE_DICTIONARIES_PATH"] = os.path.join(
CURRENT_DIR, "qtwebengine_dictionaries"
)
# ...
注意: 为了获取 bdic,我使用了 qwebengine_convert_dict 工具执行:
qwebengine_convert_dict dict/en/en-US.dic qtwebengine_dictionaries/en-US.bdic
qwebengine_convert_dict dict/de/de-DE.dic qtwebengine_dictionaries/de-DE.bdic
完整代码为here.
我正在编写一个主要在 python 中的程序,但一些交互功能是通过与 Flask 对话的 web-app 完成的。在 python 程序中包含 web-app 会很好,所以我正在考虑使用 PyQtWebEngine。
除了我无法进行拼写检查外,它的效果出奇地好。我有 运行
self.page().profile().setSpellCheckEnabled(True)
self.page().profile().setSpellCheckLanguages({"en-GB"})
从我的 child class 中 QWebEngineView
,我检查了 isSpellCheckEnabled()
是真的。
不知是不是找不到语言。没有检测到 qWarning,如果它找不到字典,我希望如此。根据 non-python example.
的建议我有一个从 Chromium hunspell git 复制的 en-GB.bdic
。我试过将文件放在:
<directory_my_py_file_is_in>/qtwebengine_dictionaries/en-GB.bdic
当我运行
app = QApplication(sys.argv)
print(app.applicationDirPath())
结果是
/usr/bin
所以我试过了
/usr/bin/qtwebengine_dictionaries/en-GB.bdic
这不行,因为当程序是 pip 安装时我无法编辑这个位置,但值得一试。
在任何一个地方的 .bdic
文件中,我都没有看到任何拼写检查功能。
有人在 PyQtWebEngine 中进行过拼写检查吗?我没能找到很多文档。
假设.bdic有效,那么我通过环境变量QTWEBENGINE_DICTIONARIES_PATH
建立了字典的路径,比如我把官方的例子翻译成了python,结构如下:
├── data
│ ├── icon.svg
│ ├── index.html
│ ├── spellchecker.qrc
│ └── style.css
├── dict
│ ├── de
│ │ ├── de-DE.aff
│ │ ├── de-DE.dic
│ │ └── README.txt
│ └── en
│ ├── en-US.aff
│ ├── en-US.dic
│ └── README.txt
├── main.py
├── spellchecker_rc.py
├── qtwebengine_dictionaries
│ ├── de-DE.bdic
│ └── en-US.bdic
└── README.md
main.py
# ...
CURRENT_DIR = os.path.dirname(os.path.realpath(__file__))
os.environ["QTWEBENGINE_DICTIONARIES_PATH"] = os.path.join(
CURRENT_DIR, "qtwebengine_dictionaries"
)
# ...
注意: 为了获取 bdic,我使用了 qwebengine_convert_dict 工具执行:
qwebengine_convert_dict dict/en/en-US.dic qtwebengine_dictionaries/en-US.bdic
qwebengine_convert_dict dict/de/de-DE.dic qtwebengine_dictionaries/de-DE.bdic
完整代码为here.