String QML StackView在几次推压后会损坏字符串
我正在为体育博彩创建一个QML应用程序 我有一个StackView,它显示了各种竞争和市场 以前,我使用一个视图来显示足球比赛中的各种比赛,然后根据我获得的数据,我只是在这个视图中更改了模型 我使用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) {
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字体有关。