String QML StackView在几次推压后会损坏字符串

String QML StackView在几次推压后会损坏字符串,string,qt,qml,corruption,stackview,String,Qt,Qml,Corruption,Stackview,我正在为体育博彩创建一个QML应用程序 我有一个StackView,它显示了各种竞争和市场 以前,我使用一个视图来显示足球比赛中的各种比赛,然后根据我获得的数据,我只是在这个视图中更改了模型 我使用StackView向用户推送和弹出各种视图 现在,我想在堆栈上动态分配这些视图: StackView { id: stack delegate: StackViewDelegate { function transitionFinished(properties) {

我正在为体育博彩创建一个QML应用程序

我有一个StackView,它显示了各种竞争和市场

以前,我使用一个视图来显示足球比赛中的各种比赛,然后根据我获得的数据,我只是在这个视图中更改了模型

我使用StackView向用户推送和弹出各种视图

现在,我想在堆栈上动态分配这些视图:

StackView {
    id: stack

    delegate: StackViewDelegate {
        function transitionFinished(properties) {
            properties.exitItem.opacity = 1
            properties.exitItem.visible = false
        }

        pushTransition: StackViewTransition {
            PropertyAnimation {
                target: enterItem
                property: "opacity"
                from: 0
                to: 1
            }
            PropertyAnimation {
                target: exitItem
                property: "opacity"
                from: 1
                to: 0
            }
        }
    }
}
    function showCompetition(competitionId) {

            var view = competitionComponent.createObject();
            view.loadCompetition(competitionId);

            stack.push( {item:view, destroyOnPop:true});
    }
以及尚未分配的组件:

Component {
    id: groupComponent

    GroupView {
        onCompetitionClicked: {
            root.showCompetition(competitionId);
        }
    }
}

Component {
    id: competitionComponent

    CompetitionView {
            // Blabla
    }
}
单击此组件时,showCompetition会将新视图推送到堆栈上:

StackView {
    id: stack

    delegate: StackViewDelegate {
        function transitionFinished(properties) {
            properties.exitItem.opacity = 1
            properties.exitItem.visible = false
        }

        pushTransition: StackViewTransition {
            PropertyAnimation {
                target: enterItem
                property: "opacity"
                from: 0
                to: 1
            }
            PropertyAnimation {
                target: exitItem
                property: "opacity"
                from: 1
                to: 0
            }
        }
    }
}
    function showCompetition(competitionId) {

            var view = competitionComponent.createObject();
            view.loadCompetition(competitionId);

            stack.push( {item:view, destroyOnPop:true});
    }
现在发生了这种情况(截图)

在我将其更改为动态分配之前(请注意,我已经硬编码了一个用于调试的标题):

在我更改为动态分配后(注意字体看起来更厚?):

在单击一个大图标后:

返回到第一页(请注意,即使是硬编码的字符串也被混淆):

很明显,字符串出现了一些问题,因为数字数据似乎是相同的,而我收到的数据仍然是正确的,因为顶部的面包屑仍然显示正确的字符串


发生了什么事?

你有英特尔图形卡,也许没有最新的图形驱动程序吗?@hmuelner我不这么认为。我使用的是一款GeForce GTX750,它使用的驱动程序是“NVIDIA二进制驱动程序-NVIDIA-346(专有,已测试)的346.59版,根据Ubuntu。我似乎已经发现这个错误与使用TTF字体有关。