Qt QML中if语句的问题
我正在努力学习Qt和QML,我遇到了麻烦。 我希望能够确定显示器的屏幕系数并相应地选择背景图像,但我不能。 这是我的代码:Qt QML中if语句的问题,qt,qt-quick,Qt,Qt Quick,我正在努力学习Qt和QML,我遇到了麻烦。 我希望能够确定显示器的屏幕系数并相应地选择背景图像,但我不能。 这是我的代码: import QtQuick 2.2 import QtQuick.Window 2.2 Image { id: root width: screenGeometry.width height: screenGeometry.height property real ratio: root.width / root.height
import QtQuick 2.2
import QtQuick.Window 2.2
Image {
id: root
width: screenGeometry.width
height: screenGeometry.height
property real ratio: root.width / root.height
source: {
source = "../components/artwork/background.png"
if (ratio == 16.0 / 9.0) {
source = "../components/artwork/background_169.png"
}
else if (ratio == 16.0 / 10.0) {
source = "../components/artwork/background_1610.png"
}
else if (ratio == 4.0 / 3.0) {
source = "../components/artwork/background_43.png"
}
}
fillMode: Image.PreserveAspectFit
}
独立于屏幕大小,它总是选择通用的。
从我在调试问题时看到的情况来看,似乎在if语句中不理解variable ratio的值。
搜索类似的主题,我已经找到了,但是我仍然看不到错误
非常感谢你的帮助 你确定你的问题不是“==”吗。比较双精度与'=''几乎总是一个错误。不能比较两个浮点数。将它们与一个小ε1E-6进行比较,或者使用一些内置的方法,如QtC++中的QFuffyIn比较,或者更好的是,将图像分配到比率范围(If比x……如果是比率>Y),并且剪辑或缩放它们,比例不匹配。谢谢!我像个初学者一样忽略了这一点!非常感谢您的帮助!