Kivy Popup Text Wrapping не работает, как ожидалось - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь написать функцию, которая запускает всплывающее окно с сообщением и кнопкой закрытия на экране, однако, похоже, не получается правильно обернуть текст.В настоящее время текст остается в поле 100 х 100 (размер по умолчанию).Кнопка действительно масштабируется правильно, поэтому я не понимаю, что я делаю неправильно.Выполнение self.text_size = self.size нормально работает на языке kv, но не на обычном Python?

def default_popup(text: str, title: str = 'Warning') -> None:
    err_box = BoxLayout(orientation = 'vertical')

    err_txt = Label(text = text, font_size = 15)
    err_txt.text_size = err_txt.size
    err_box.add_widget(err_txt)

    close_button = Button(text = "Close")
    err_box.add_widget(close_button)

    err = Popup(title = title, content = err_box, size_hint = (0.6, 0.4))

    close_button.bind(on_release = err.dismiss)
    err.open()

1 Ответ

0 голосов
/ 02 января 2019

Вы можете использовать CoreLabel для расчета необходимого размера.Что-то вроде:

text_tmp = CoreLabel(text=text, font_size=15)
text_tmp.refresh()
err_txt = Label(text = text, font_size = 15, size_hint=(None, None), size=text_tmp.size))

Просто убедитесь, что свойства CoreLabel такие же, как Label.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...