#android #user-interface #fonts #menu #qml
#Android #пользовательский интерфейс #шрифты #меню #qml
Вопрос:
Следующий стандартный код QML не работает. Вместо значка меню с 3 маленькими строками (unicode u2630) я получаю прямоугольник с крестом внутри: он не находит символ. Однако при необходимости он находит стрелку влево u25C0 (треугольная кнопка назад).
Это всего лишь косметический сбой, так как он работает отлично.
Связано ли это с шрифтом или с отображением значка? Как это решить?
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
id: window
width: 640
height: 480
visible: true
title: qsTr("Stack")
header: ToolBar {
contentHeight: toolButton.implicitHeight
ToolButton {
id: toolButton
text: stackView.depth > 1 ? "u25C0" : "u2630"
font.pixelSize: Qt.application.font.pixelSize * 1.6
onClicked: {
if (stackView.depth > 1) {
stackView.pop()
} else {
drawer.open()
}
}
}
Label {
text: stackView.currentItem.title
anchors.centerIn: parent
}
}
(...)
Комментарии:
1. Да, это может быть связано со шрифтом. Есть ли в вашем шрифте этот символ?
2. Вероятно, нет. Дело в том, что я не устанавливаю какой-либо шрифт, поэтому он использует, вероятно, шрифт по умолчанию (работает одинаково на моем смартфоне и эмуляторе). Я ожидал бы, что этот будет поддерживать этот самый обычный символ на Android.
3. Я протестировал код в Ubuntu, и он работает так, как ожидалось. Шрифт по умолчанию с именем
Ubuntu
. Прямоугольник с крестом, вероятно, есть (СИМВОЛ ЗАМЕНЫ U FFFD), как я знаю, используется для сигнализации ошибок в недопустимых потоках Unicode4. Та же проблема на Android 8. На Win и других версиях Android все работает нормально. @Jacques, вы решили эту проблему?
Ответ №1:
Для тех, кто приходит сюда из поиска, я оставлю здесь ответ от Qt.io форум https://forum.qt.io/topic/123877/stackview-icon-on-android