QML TextEdit font.preferShaping 不匹配 QFont::PreferNoShaping

问题描述 投票:0回答:1

我有带有 TextEdit 的 QML 组件:

TextEdit {
    ...
    font: settings.myFont
    font.preferShaping: false

加载组件时出现错误

qml Can't create component <path_to_my_qml>: Property has already been assigned a value
指向行
font.preferShaping: false
.

我尝试注释行

font.preferShaping: false
并通过以下方式在 C++ 端设置属性:

QFont Settings::myFont() const
{
    ...
    font.setStyleStrategy(QFont::PreferNoShaping);    
    return font;
}

但是文本的外观与

font.preferShaping
属性的默认值相匹配,这是真的。

如何将

font.preferShaping
属性设置为 false 而不会出错?


最终,我需要在 QML 和 C++ 端实现相同的文本显示,其中文本通过

updatePaintNode
:

QSGNode* Text::updatePaintNode(QSGNode* oldNode, QQuickItem::UpdatePaintNodeData*)
{
    ...
    painter.setFont(settings.myFont());
    painter.drawText(rect, alignment(), m_textParams.text());
    ...
}
qt qml qt5 qfont
1个回答
0
投票

onFontChanged 信号发出后如何设置属性:

Text {
   id: text
   font: settings.myFont
   onFontChanged: {
       text.font.preferShaping = false;
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.