У меня есть файл python, который я загружаю как скрипт в редактор скриптов maya.Файл Python в настоящее время закодирован как UTF-8.
У меня есть необходимость использовать символы ↑ и ↓ (или любые другие замены стрелок в Юникоде, такие как ➘ или ➚, я просто хочу передать ивниз).Я использую символы в качестве метки кнопки.Вот сценарий:
import Maya.cmds as cmds
def initInterface():
cmds.window("mywin")
cmds.rowColumnLayout("my_rcl", nc=1)
cmds.button(label=u'\↑')
cmds.button(label=u'\↓')
cmds.showWindow("mywin")
initInterface()
Этот сценарий сохраняется как myPythonScript.py и затем загружается в редактор сценариев Maya с помощью кнопки загрузки сценария.
При выполнении я получаю окно пользовательского интерфейсаи кнопки, как и ожидалось, но метки для кнопок теперь "?"(вопросительные знаки).Кажется, я не могу заставить Майю отображать стрелки.
Чтобы решить эту проблему, я попробовал пару вещей в коде.Вот несколько моих попыток:
# Attempt 1
upArrow = u'\↑'
upArrowEncoded = upArrow.encode("utf-8")
cmds.button(label=upArrowEncoded)
# Result: "?"
# Attempt 2
upArrow = u'\U+2B06'
cmds.button(label=upArrow)
# Result: "?B06"
# Attempt 3
upArrow = u'\U+2B06'
upArrowEncoded = upArrow.encode("utf-8")
cmds.button(label=upArrowEncoded)
# Result: "?"
Честно говоря (и это может быть очевидно из моих фрагментов кода), я никогда не экспериментировал с кодировкой текста и почти ничего не знаю об этом.Я не уверен, нужно ли мне изменить кодировку моего файла .py или кодировать строку с помощью UTF-16 или чего-то еще.Это выходит за рамки моей компетенции, и мне трудно найти ресурсы, которые помогут мне понять текстовое и строковое кодирование.
Я проверил это: Юникод в Maya
И это: Преобразование строки Юникода в строку в Python, содержащей дополнительные символы
Но я не смог понять многое из того, что я прочитал, и я не уверен, относятся ли они к этой проблеме или нет.
Я из тех людей, которым не нравится использовать код, который я не понимаю (как люди даже документируют это?), Поэтому я здесь, чтобы попросить ссылки на учебные ресурсы и на общие сведения.совет по этому вопросу, более того, чем фрагмент кода, который делает то, что я хочу.Если оказывается, что это невозможно, я могу вместо этого использовать кнопки изображений.Но они менее эффективны и отнимают много времени для каждого специального символа, который я могу использовать.
Спасибо, что прочитали это, и заранее спасибо всем, кто может указать мне правильное направление здесь.Ура!