qml主窗口背景渐变
qml mainwindow background gradient
我有这样的想法。
我想在 myApp main window.
中使用渐变而不是单色背景
我测试了不同的代码方式,但没有成功。
结果总是一样的。要么背景为纯白色,要么显示黑白渐变(见图)。
你能告诉我正确的做法吗?我需要更暗的东西。此外,也许是其他颜色。但这只以黑白显示所有内容。
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtGraphicalEffects 1.0
ApplicationWindow {
id: window
visible: true
width: 425
height: 850
title: qsTr("myApp")
/*
Item
{
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
//totaly not works
Rectangle
{
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
//totaly not works
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
//malfunction - still show only two colors - black nad white
RadialGradient
{
anchors.fill: parent
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
//malfunction - still show only two colors - black nad white
Rectangle
{
anchors.fill: parent
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
//Totaly not works
Item
{
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
*/
Item
{
anchors.fill: parent
RadialGradient
{
anchors.fill: parent
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
}
您必须将 gradientstops 列表应用于视觉项目的 gradient
属性。
要在 Item
内使用矩形,必须指定 Item 的尺寸,默认情况下 Item 的高度和宽度为零。
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtGraphicalEffects 1.0
ApplicationWindow {
id: window
visible: true
width: 425
height: 850
title: qsTr("myApp")
Rectangle
{
anchors.fill: parent
gradient: Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
}
使用径向渐变
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtGraphicalEffects 1.0
ApplicationWindow {
id: window
visible: true
width: 425
height: 850
title: qsTr("myApp")
Item
{
anchors.fill: parent
RadialGradient
{
anchors.fill: parent
gradient: Gradient{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
}
}
我有这样的想法。 我想在 myApp main window.
中使用渐变而不是单色背景我测试了不同的代码方式,但没有成功。
结果总是一样的。要么背景为纯白色,要么显示黑白渐变(见图)。
你能告诉我正确的做法吗?我需要更暗的东西。此外,也许是其他颜色。但这只以黑白显示所有内容。
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtGraphicalEffects 1.0
ApplicationWindow {
id: window
visible: true
width: 425
height: 850
title: qsTr("myApp")
/*
Item
{
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
//totaly not works
Rectangle
{
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
//totaly not works
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
//malfunction - still show only two colors - black nad white
RadialGradient
{
anchors.fill: parent
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
//malfunction - still show only two colors - black nad white
Rectangle
{
anchors.fill: parent
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
//Totaly not works
Item
{
Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
*/
Item
{
anchors.fill: parent
RadialGradient
{
anchors.fill: parent
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
}
您必须将 gradientstops 列表应用于视觉项目的 gradient
属性。
要在 Item
内使用矩形,必须指定 Item 的尺寸,默认情况下 Item 的高度和宽度为零。
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtGraphicalEffects 1.0
ApplicationWindow {
id: window
visible: true
width: 425
height: 850
title: qsTr("myApp")
Rectangle
{
anchors.fill: parent
gradient: Gradient
{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
}
使用径向渐变
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtGraphicalEffects 1.0
ApplicationWindow {
id: window
visible: true
width: 425
height: 850
title: qsTr("myApp")
Item
{
anchors.fill: parent
RadialGradient
{
anchors.fill: parent
gradient: Gradient{
GradientStop {position: 0.000;color: Qt.rgba(1, 0, 0, 1);}
GradientStop {position: 0.167;color: Qt.rgba(1, 1, 0, 1);}
GradientStop {position: 0.333;color: Qt.rgba(0, 1, 0, 1);}
GradientStop {position: 0.500;color: Qt.rgba(0, 1, 1, 1);}
GradientStop {position: 0.667;color: Qt.rgba(0, 0, 1, 1);}
GradientStop {position: 0.833;color: Qt.rgba(1, 0, 1, 1);}
GradientStop {position: 1.000;color: Qt.rgba(1, 0, 0, 1);}
}
}
}
}