qtdeclarative/tests/manual/textrendering/main.qml

109 lines
2.7 KiB
QML
Raw Permalink Normal View History

// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
import QtQuick.Window
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Shapes
Window {
id: theWindow
width: 1024
height: 768
visible: true
title: qsTr("Text Rendering")
color: "white"
Text {
id: dummyTextRendering
scale: scaleSlider.value
anchors.centerIn: parent
text: dummyText.text
font.pixelSize: fontSize.value
renderType: renderTypeCombo.currentIndex
style: styleCombo.currentIndex
styleColor: "indianred"
color: "black"
visible: renderTypeCombo.currentIndex <= 2
}
Shape {
id: dummyShapeRendering
anchors.centerIn: parent
scale: scaleSlider.value
visible: !dummyTextRendering.visible
width: boundingRect.width
height: boundingRect.height
preferredRendererType: shapesRendererCombo.currentIndex === 0 ? Shape.GeometryRenderer : Shape.CurveRenderer
ShapePath {
id: shapePath
fillColor: "black"
strokeColor: styleCombo.currentIndex === 1 ? "indianred" : "transparent"
strokeStyle: ShapePath.SolidLine
strokeWidth: 1
fillRule: ShapePath.WindingFill
PathText {
text: dummyText.text
font.pixelSize: fontSize.value
}
}
}
RowLayout {
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
TextField {
id: dummyText
text: "Foobar"
Layout.fillWidth: false
}
Label {
text: "Scale:"
}
Slider {
id: scaleSlider
from: 0.5
to: 10
value: 1
Layout.fillWidth: false
}
Label {
text: "Font size:"
}
Slider {
id: fontSize
from: 1
to: 1000
value: 100
Layout.fillWidth: true
}
ComboBox {
id: styleCombo
Layout.fillWidth: false
model: [ "Normal", "Outline", "Raised", "Sunken" ]
}
ComboBox {
id: renderTypeCombo
Layout.fillWidth: false
model: [ "QtRendering", "NativeRendering", "CurveRendering", "Qt Quick Shapes" ]
}
ComboBox {
id: shapesRendererCombo
Layout.fillWidth: false
model: [ "GeometryRenderer", "CurveRenderer" ]
visible: renderTypeCombo.currentIndex > 2
}
}
}