Различия шрифтов при использовании wxPython в Windows / Linux - PullRequest
1 голос
/ 27 января 2011

Мое приложение использует wxPython и работает в Linux и Windows без изменений. Проблема заключается в отображении шрифтов. В Linux это выглядит идеально, но в Windows знак «-» полностью разбит, а текст не такой приятный. Вот несколько сравнительных фотографий:

Fedora 13

Windows

Посмотрите, как знак минус в блоке «Добавить» не работает в Windows. Это делается путем преобразования стандартного дефиса в символ Unicode, чтобы получить полноразмерный минус. Я предполагаю, что этот символ не существует в шрифте по умолчанию, используемом в Windows. Другие вещи выглядят плохо в Windows, но несколько терпимы.

Код, который я использую, выглядит следующим образом:

if (text == '-'): text = u'\u2212' #unicode has a better minus
s = self.dc.GetTextExtent(text)
self.dc.DrawText(text, x_position, y_position - int(s[1]/2))

Каков самый простой независимый от платформы способ получить приличный знак минус и в Windows? Есть ли свободно лицензированный шрифт, который я могу включить в приложение, которое содержит это? Как мне использовать его в wxPython?

Я не хочу устанавливать шрифты в системе и не хочу использовать символ дефиса "-", потому что он выглядит ужасно на этих диаграммах из-за его размера.

Ответы [ 3 ]

0 голосов
/ 12 февраля 2011

Есть ли разница, если вы используете dc.DrawLabel?Я должен был использовать это более DrawText в Windows, так как он не отображал бы новые строки должным образом;они выглядели как маленькие квадраты, как отсутствующие символы юникода.

0 голосов
/ 08 апреля 2011

Пока я нашел приемлемый ответ. Просматривая код wxDemo, я обратил внимание на то, как они выбирают шрифт, и понял, что я даже не определял шрифт. Я полагал, что демо-код, скорее всего, будет работать на обеих платформах, поэтому попробовал:

self.dc.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.NORMAL))

Это делает размер текста более согласованным, а также обеспечивает приемлемые знаки +/- как для Windows, так и для Linux с использованием u2212. Похоже, что загрузка шрифта из файла может не зависеть от платформы - и это плохо, так как я нашел один из шрифтов STIX очень хорошим для этого приложения. Так что теперь у меня есть последовательность с приемлемым шрифтом, если не мой лучший выбор.

0 голосов
/ 27 января 2011

Попробуйте проверить www.dafont.com как ресурс для бесплатных шрифтов.Там множество шрифтов с подходящими лицензиями.

...