Я недавно нашел набор emojis, который я хотел бы использовать в тексте. Они находятся в формате .svg, и я понятия не имею, как их вставлять. У меня есть TextInput
для ввода сообщения и пользовательского виджета, который использует TextInput
для последующего отображения текста. Я с радостью порекомендую любую помощь, ссылки, статьи, что угодно.Как использовать графику .vv в Kivy TextInput?
ответ
Edit2:
Как пояснил @RyanP в комментариях, я полагаю, шрифт имеет изображения смайликов и поэтому единственное, что вам нужно сделать, это шрифт (или непосредственно один из шрифтов kivy использует) и добавляет/заменяет изображения emoji в этом шрифте с вашим .svg
s для каждого emoji.
Этот table, несомненно, поможет вам, а также fontforge. Here является частью документации об импорте svgs.
В случае, если это невозможно будет сделать, я оставлю оставшийся ответ ниже.
Я не знаю, если TextInput
способен сделать такую вещь - вставки .svg или хорошо любое изображение в себя, потому что это делает текст.
Однако я могу увидеть обходное решение как создание для каждого emoji текстового эквивалента или метки - например, [smileemoji]
. Затем после отправки текста создайте функцию, которая заменит теги emojis. Однако он не будет работать с Label таким образом, как он написан, потому что он также отображает текст в одиночку.
Как я это вижу:
вы можете использовать метку, которая будет размером его текста, а затем поместить смайлик, а затем другую метку с остальным текстом. Но у вас возникнут проблемы с его упаковкой, потому что вы не сможете сломать строку, как во втором примере (по крайней мере, я не знаю, как), чтобы она оставалась единственным виджетами.
1:
bla bla bla
смайликовremaining text
2: бла бла бла бла бла бла бла
remaining
text
как второй вариант я бы порекомендовал вам делая одну метку, то:
- смайликов должен иметь постоянный размер
- сделать для каждого тега специальный символ (ы) в тексте, который будет постоянный размер (использование разметки) - я рекомендую вам что-то, что будет сильно напоминать квадратную форму
- место
Image
с такой же ширины, как ваш специальный символ (ы) на верхней частиLabel
, так что он будет вести себя, как изображение в тексте, но в действительности это будет еще один виджет
Второй вариант кажется мне логичным, потому что Label
будет обрабатывать упаковку, и единственное, что вам нужно найти и установить, - это постоянный размер и местоположение этого символа в вашем тексте на экране (чтобы вы могли позиционировать виджет Image
- не позиция в строке).
Если вы хотите остаться с TextInput
как выходным менеджером, не проблема, но вы должны будете управлять проклейками вашего специального характера внутри себя TextInput
и - может быть, уродливых части - ручка цвета Image
виджета, если ваш диспетчер вывода меняет цвет, например, TextInput
делает на фокус/дефокусировку, чтобы он не выглядел странным.
Также есть прокрутка, вам тоже нужно будет обрабатывать это, чтобы ваши эможи не плавали вокруг без причины или оставались на вершине вашего Label
/TextInput
, пока текст меняется.
На всякий случай, что ваш emoji будет прозрачным или что его цвет фона будет соответствовать цвету вашего диспетчера.
Edit:
Если вы хотите только некоторые смайликов, отказаться от идеи изображения и идти по тегам и заменяя юникодом 1, 2.
- 1. Kivy TextInput и шрифты
- 2. Kivy textinput on_leave свойство
- 3. Kivy Textinput Wrap
- 4. Kivy TextInput on_double_tap
- 5. Kivy TextInput с автозаполнением
- 6. Kivy TextInput фоновые проблемы
- 7. Как сохранить textinput в kivy python?
- 8. Получение ввода от kivy textinput
- 9. Kivy get TextInput from Popup
- 10. Автоматически «фокус» из TextInput Kivy
- 11. Как использовать NumericProperty() в Kivy?
- 12. Kivy TextInput как объединить hint_text и focus
- 13. Как получить значение textinput с Kivy
- 14. Как использовать kivy StringProperty?
- 15. Использование значения из textinput в python (kivy)
- 16. обнаружение щелчка/касания в kivy textinput
- 17. Получить значение textinput в приложении Kivy
- 18. Создание атрибутов виджетам в отдельных файлах .vv
- 19. Использование пользовательского ввода от TextInput - Kivy
- 20. Kivy - проблема с поведением TextInput on_focus
- 21. Проблемы с управлением курсором Kivy TextInput
- 22. Kivy - Сделать кнопки изменить текст TextInput?
- 23. Как установить положение курсора в TextInput в Kivy
- 24. Сохранить TextInput при нажатии кнопки - kivy/python
- 25. В kivy, Как я могу контролировать высоту VKeyboard используемой TextInput
- 26. Как установить цвет фона Kivy TextInput в зависимости от фокуса
- 27. Как написать «призрак» (или непропускаемый) текст для Kivy TextInput?
- 28. Как получить ширину символов символов Kivy TextInput или метки
- 29. Как я могу заставить TextInput распознавать словарь на kivy?
- 30. Назначить значение переменной из TextInput в Python (Kivy)
Соответствующими заполнителями являются юникод-эмози. –
@ RyanP Да, я знаю, что emojis использует заполнители в unicode, но это не поможет ему сделать его в TextInput: -/Вероятно, он увидит только пустое пространство или нет? – KeyWeeUsr
Не заполнители, фактический Unicode emoji. Они будут отображаться в Kivy, если шрифт поддерживает эти символы. Ключ должен был заменить эти символы изображениями во время процесса рендеринга меток. –