在PyQtWebEngine中进行拼写检查。

问题描述 投票:1回答:1

我正在编写一个主要用python编写的程序,但一些交互功能是通过一个与flask对话的web-app来完成的,如果能在python程序中加入web-app就更好了,所以我想使用PyQtWebEngine。如果能在python程序中加入web应用程序就更好了,所以我正在考虑使用PyQtWebEngine。

除了不能进行拼写检查之外,这个功能出奇的好。我已经运行了

self.page().profile().setSpellCheckEnabled(True)
self.page().profile().setSpellCheckLanguages({"en-GB"})

从我的孩子班里 QWebEngineView我已经检查过了 isSpellCheckEnabled() 是真。

我想知道它是否找不到语言。没有检测到qWarning,如果它找不到字典的话,我也会这样想。正如建议的 非python例子.

我有一个 en-GB.bdic 这是我从Chromium hunspell git中复制过来的。我试着把文件放到了:

<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中实现了拼写检查功能?我一直找不到什么文档。

python pyqt pyqt5 qtwebengine
1个回答
2
投票

假设.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工具,执行如下结构:main.py 为了得到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

完整的代码如下 此处.

© www.soinside.com 2019 - 2024. All rights reserved.