Я написал пример программы qtquickapplication для отображения текста "none" в данном прямоугольнике. Цвет границы прямоугольника установлен на красный, чтобы визуализировать, правильно ли помещается текст «нет» в пределах заданной ширины и высоты или нет.
Я скомпилировал ту же программу для windows и Linux отдельно. Я застрял со странным поведением.
При одинаковом коде и шрифте (Frobisher) текст «none» правильно помещается внутри границы прямоугольника, но усекается в среде Windows.
В чем причина? Почему шрифт ведет себя по-другому? Я что-то пропустил?
main. cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QtFontDatabaseSupport/QtFontDatabaseSupport>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("qrc:/main.qml"));
QFontDatabase::addApplicationFont("FrobisherNormal.ttf");
engine.load(url);
return app.exec();
}
main .qml
import QtQuick 2.14
import QtQuick.Window 2.14
import QtQuick.Controls 2.14
Window {
visible: true
width: 300
height: 200
title: qsTr("Hello World")
Rectangle
{
width: 65
height: 32
border.color: "red"
anchors.centerIn: parent
Text {
id: txt
text: "none"
font.family: "Frobisher"
font.pointSize: 20
font.bold: false
anchors.verticalCenter: parent.verticalCenter
verticalAlignment: "AlignVCenter"
}
}
}