问题描述
我想打印文本,但是当我使用Behavior时,文本以十进制格式打印在输出中,但是我想将输出文本打印为整数。请帮助我,我想念的是什么。所需的输出应为整数,而不是文本中的浮点数
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 1920
height: 1080
property real rpmValue: 0
property real speedValue: 0
property int gear: 0
function generator()
{
if ( gear == 0 )
{
rpmValue = rpmValue+7.5
speedValue = speedValue
gear = 1
}
else if ( gear == 1 )
{
if ( rpmValue > 150 )
{
rpmValue = 110;
speedValue = speedValue
gear = 2
}
rpmValue = rpmValue + 5
speedValue = speedValue + 3
}
else if ( gear == 2 )
{
if ( rpmValue > 155 )
{
rpmValue = 110
speedValue = speedValue
gear = 3
}
rpmValue = rpmValue +3
speedValue = speedValue +1.5
}
else if ( gear == 3 )
{
if ( rpmValue > 155 )
{
rpmValue = 110
speedValue = speedValue
gear = 4
}
rpmValue = rpmValue + 2
speedValue = speedValue +1.2
}
else if ( gear == 4 )
{
if ( rpmValue > 155 )
{
rpmValue = 110;
speedValue = speedValue - 1
gear = 4
}
rpmValue = rpmValue + 1
speedValue = speedValue + 1
}
if ( speedValue > 140 )
{
rpmValue = gear = 0
speedValue = 0
}
}
Timer{
id:rpmAndspeedUpdate
interval:300
running:true
repeat:true
onTriggered: {
generator()
}
}
Text{
id:speednumber
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
anchors.bottomMargin: 10
width: 400
height: 140
text: parseInt(speedValue)
color:"#d1d1d1"
font{pixelSize: 90; styleName: 'DemiBold'}
horizontalAlignment: Text.AlignHCenter
Behavior on text {
SpringAnimation{spring:0.1; damping:0.025; veLocity: 80}
}
}
}
解决方法
您只需要将动画移至Text项之外,以便在对速度值进行动画处理后才将转换为int!
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 1920
height: 1080
property real rpmValue: 0
property real speedValue: 0
Behavior on speedValue {
SpringAnimation{spring:0.1; damping:0.025; velocity: 80}
}
property int gear: 0
function generator()
{
if ( gear == 0 )
{
rpmValue = rpmValue+7.5
speedValue = speedValue
gear = 1
}
else if ( gear == 1 )
{
if ( rpmValue > 150 )
{
rpmValue = 110;
speedValue = speedValue
gear = 2
}
rpmValue = rpmValue + 5
speedValue = speedValue + 3
}
else if ( gear == 2 )
{
if ( rpmValue > 155 )
{
rpmValue = 110
speedValue = speedValue
gear = 3
}
rpmValue = rpmValue +3
speedValue = speedValue +1.5
}
else if ( gear == 3 )
{
if ( rpmValue > 155 )
{
rpmValue = 110
speedValue = speedValue
gear = 4
}
rpmValue = rpmValue + 2
speedValue = speedValue +1.2
}
else if ( gear == 4 )
{
if ( rpmValue > 155 )
{
rpmValue = 110;
speedValue = speedValue - 1
gear = 4
}
rpmValue = rpmValue + 1
speedValue = speedValue + 1
}
if ( speedValue > 140 )
{
rpmValue = gear = 0
speedValue = 0
}
}
Timer{
id:rpmAndspeedUpdate
interval:300
running:true
repeat:true
onTriggered: {
generator()
}
}
Text{
id:speednumber
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
anchors.bottomMargin: 10
width: 400
height: 140
text: parseInt(speedValue)
color:"#d1d1d1"
font{pixelSize: 90; styleName: 'DemiBold'}
horizontalAlignment: Text.AlignHCenter
}
}