Я работал над решением через несколько дней после публикации этого вопроса. С тех пор, похоже, есть много людей, которые все еще пытаются использовать «растровые шрифты старой школы» в Qt Quick. Решение, которое я нашел, действительно элегантно и имеет чрезвычайно хорошие характеристики.
import QtQuick 1.1
Row {
property string text: ""
Repeater {
model: text.length
Image {
source: "bitmapfont/" + text.charCodeAt(index) + ".png"
}
}
}
Сохранить как «TextBitmap.qml» в той же директории с вашим другим кодом QML, а затем создать подкаталог с именем шрифта («bitmapfont» в данном примере). Вам нужно будет нарисовать или вырезать каждый шрифт шрифта растрового изображения индивидуально и сохранить их в этой подпапке как отдельный .png, чье имя является Юникодом этого глифа; например bitmapfont/65.png для символа 'A', bitmapfont/66.png для символа 'B' и т. д.
Когда этот пользовательский элемент TextBitmap визуализируется в первый раз - или в любое время изменилось свойство текста - Repeater автоматически создаст элемент изображения для каждого символа в тексте, каждый из которых отобразит соответствующий .png из «bitmapfont».
Используйте это так:
import QtQuick 1.1
Rectangle {
width: 800
height: 500
TextBitmap {
text: "Hello Bitmap Fonts!"
}
}
В http://www.royconejo.com/bitmap-fonts-in-qt-quick-qml/ вы найдете более развернутую TextBitmap элемент, видео о том, как он выглядит, и даже образец проекта.
Надеюсь, это поможет кому-то!
Вы нашли решение на этом? – QuasarDonkey
Да, да. Через несколько дней после моего вопроса я нашел очень изящное решение, но потом забыл ответить на мой собственный вопрос. Я сделаю это скоро :) – conejoroy
Это было бы здорово! Я бы хотел использовать Qt для игры, над которой я работаю, но отсутствие поддержки растровых шрифтов не позволяет мне использовать ее. – QuasarDonkey