QML - ограничение размера для семейства шрифтов Courier - PullRequest
2 голосов
/ 20 апреля 2020

Я играю с размером шрифта в Text / TextInput / TextField в QML.

Для Text с font.family: "MS Shell Dlg 2" все работает как положено. Забавная вещь случается, когда я пытаюсь использовать семейство «Courier» (я хочу моноширинный шрифт): не каждый размер шрифта показан, и для font.pointSize > ~20 отображаемый текст перестает расти. Я пытался использовать font.pixelSize, но эффект точно такой же.

Это нормальное поведение для шрифта Courier в QML?

Ниже приведен элемент Text, используемый для проверить поведение:

     Text {
        id: element
        x: 10
        y: 10
        text: qsTr("FF")
        font.pointSize: 40
        font.family: "Courier" //if "MS Shell Dlg 2" used everything is ok
    }


Редактировать:
Размер шрифта отлично работает для семейства "Courier New" ... Хотя моя непосредственная проблема решена, я бы очень хотел понять, что происходит с семьей "Курьер".


Edit 2:
Из приведенного ниже обсуждения кажется, что это проблема, указанная c для моей машины, поскольку другие люди говорят, что она работает для них. ..


Редактировать 3:
Мое окружение: Qt 5.14.2 на Windows 10 машине. Я использую QtCreator 4.11.2 и 64-битный компилятор mingw.

1 Ответ

0 голосов
/ 20 апреля 2020

Может быть из-за какого-то контейнера для вашего Text элемента?

Этот код работает, например:

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2

ApplicationWindow {
    id: mainWindow
    visible: true
    width: 640
    height: 480

    Row {
        id: buttonRow
        spacing: 5
        anchors.verticalCenter: parent.verticalCenter
        anchors.left: parent.left
        width: parent.width

        Text {
            id: element
            x: 10
            y: 10
            text: qsTr("FF")
            font.pointSize: 140
            font.family: "Courier"
        }

        Button {
            id: button1
            text: "Click me"
            anchors.verticalCenter: parent.verticalCenter
            onClicked: {
                element.font.pointSize = element.font.pointSize + 10;
            }
        }
    }
}
...