gpt4 book ai didi

c++ - 在 Qt QML 中为许多文本元素指定字体

转载 作者:IT老高 更新时间:2023-10-28 23:12:00 25 4
gpt4 key购买 nike

我有一个通过 QML 文件指定的小部件。该小部件包含一个顶级Rectangle,其中包含两个Columns。这些 Columns 中的每一个都包含许多 Text 元素。这个 QML 小部件被包装在 C++ 中 QDeclarativeView 的子类中。

我想为这些 Text 元素中的每一个指定字体。今天我通过指定顶级属性来做到这一点:

property string fontfamily: "Arial"
property bool fontbold: false
property bool fontitalic: false
property int fontpixelsize: 11
property string fontcolor: "White"

并将每个 Text-元素绑定(bind)到这些属性:

Text
{
color: fontcolor
font.family: fontfamily
font.bold: fontbold
font.italic: fontitalic
font.pixelSize: fontpixelsize
...
}

这不是很优雅,每次我需要支持新的东西(例如带下划线的字体)时都需要添加新的字段。我无法声明 font 类型的属性并改为绑定(bind)到它(小部件为空白,qmlviewer 警告“属性后的预期类型”)。

有没有更好的方法来为所有 Text 元素指定字体?

注意!我正在手写 QML 文件。

最佳答案

在 Qt 5.6(至少,可能更早)中,您可以使用 Qt.font() 动态分配字体对象并在其他地方引用它。所以,这行得通:

property font myFont: Qt.font({
family: fontfamily,
bold: fontbold,
italic: fontitalic,
pixelSize: fontpixelsize
});

Text
{
color: fontcolor
font: parent.myFont
}

Qt.font() 的更多信息:https://doc.qt.io/qt-5/qml-qtqml-qt.html#font-method

关于c++ - 在 Qt QML 中为许多文本元素指定字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com