Выходит ошибка при нажатии кнопки KivyMD
Пишу впервые на kivymd. Вышла ошибка при нажатии на кнопку и ошибка показывает на строку spell = Spelling(). Ошибка такая TypeError: 'NoneType' object is not callable. На Windows тот же код работает при нажатии но при запуске того же кода на Ubuntu 22.04 выдаёт ошибку. Я хочу взять текст из MDTextField ссылаясь на его id word = self.ids.word_input.text но выходит ошибка. Вот мой код:
main.py
import kivy
from kivy.app import App
from kivymd.app import MDApp
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.core.spelling import Spelling
from kivy.core.text import LabelBase
from kivymd.theming import ThemeManager
Builder.load_file('main.kv')
class MyLayout(Widget):
def press(self):
spell = Spelling()
spell.select_language('en_US')
word = self.ids.word_input.text
options = spell.suggest(word)
x = ''
for item in options:
x = f'{x} {item}'
self.ids.word_label.text = f'{x}'
class MyApp(MDApp):
theme_cls = ThemeManager()
title = 'Speller'
def build(self):
LabelBase.register('MyFont', fn_regular='UbuntuMono-Regular.ttf')
self.theme_cls.theme_style = 'Light'
Window.clearcolor = (1,1,1,1)
return MyLayout()
if __name__ == '__main__':
MyApp().run()
main.kv
<MyLayout>
id: my_widget
BoxLayout:
orientation: 'vertical'
size: root.width, root.height
padding: 50
spacing: 30
MDLabel:
id: word_label
text_size: self.size
halign: 'center'
valign: 'middle'
text: 'Enter a word'
font_size: 32
font_name: 'MyFont'
color: ('#3D405B')
MDTextField:
id: word_input
multiline: False
size_hint_x: 1
font_size: 32
font_name: 'MyFont'
hint_text: 'Spell'
MDRaisedButton:
size_hint: (1, 0.5)
font_size: 32.5
text: 'Submit'
font_name: 'MyFont'
on_press: root.press()
Объясните пожалуйста в чём проблема или может есть другое решение этой задачи. Может я не правильно ссылаюсь на Id
Ответы (1 шт):
Автор решения: Андрей Васильев
→ Ссылка
Для работы с Spelling в kivy надо обязательно установить:
pip install pyenchant