下面的代码是Qt文档中的示例,它基本上解释了如何将属性gamma调整为特定的Item
。
import QtQuick 2.0
import QtGraphicalEffects 1.0
Item {
width: 300
height: 300
Image {
id: bug
source: "images/bug.jpg"
sourceSize: Qt.size(parent.width, parent.height)
smooth: true
visible: false
}
GammaAdjust {
anchors.fill: bug
source: bug
gamma: 0.45
}
}
有没有办法将整个伽玛校正设置为整个应用程序,以便可以按照我想要的方式校正颜色深度,而不是默认值。
类似的东西:
xrandr - 输出DVI-0 --gamma 2:2:1
答案 0 :(得分:1)
使用属性绑定。创建Settings.qml
Item
{
property double gammaValue: 0.45
}
然后
Item {
width: 300
height: 300
Image {
id: bug
source: "images/bug.jpg"
sourceSize: Qt.size(parent.width, parent.height)
smooth: true
visible: false
}
GammaAdjust {
anchors.fill: bug
source: bug
gamma: appSettings.gammaValue
}
Settings {
id: appSettings
}
}
答案 1 :(得分:1)
如果我理解你的要求,那么你想要访问命令行参数。在QML中,您可以import QtQuick 2.0
import QtGraphicalEffects 1.0
Item {
width: 300
height: 300
// gammaIndex will be 0 if --gamma not given, otherwise index of value
property int gammaIndex: Qt.application.arguments.indexOf("--gamma") + 1;
// fallback default value as its own property for clarity
property real defaultGamma: 1.0
// rely on short-circuiting logic, result is either //valid or //default
// an invalid number will give value 0, so --gamma 0 is rejected too
property real gamma: gammaIndex > 0
&& Qt.application.arguments[gammaIndex] > 0
&& Qt.application.arguments[gammaIndex] //valid
|| defaultGamma //default
Image {
id: bug
source: "images/bug.jpg"
sourceSize: Qt.size(parent.width, parent.height)
smooth: true
visible: false
}
GammaAdjust {
anchors.fill: bug
source: bug
gamma: parent.gamma
}
}
访问它们。这是一个粗略的解决方案,修改为您的问题代码:
DateTime