Qt quick ApplicationWindow 'color' для цвета фона не работает
Я создал простое быстрое приложение Qt с одним main.qml, как в приведенном ниже коде. Проблема в том, что цвет фона окна не был установлен на #ffffff
вместо этого он установлен на светло-серый (по умолчанию цвет окна в Windows я думал). Цвет прямоугольника установлен правильно.
Я использую Qt Creator 3.3.1 (opensource) на основе Qt 5.4.1 для Windows.
import QtQuick 2.4
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.3
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
ApplicationWindow {
title: qsTr("Hello")
width: 200
height: 200
visible: true
color: "#FFFFFF"
Rectangle {
id: rectangle1
width: 100
height: 100
color: "#ffffff"
}
}
1 ответ
Решение
ApplicationWindowStyle
QML Type обеспечивает стилизацию для ApplicationWindow
, По умолчанию ApplicationWindowStyle
представлять фон в виде:
background: Rectangle {
visible: !styleData.hasColor
color: SystemPaletteSingleton.window(true)
}
styleData.hasColor
свойство определяется как:
property QtObject styleData: QtObject {
readonly property bool hasColor: window.color != "#ffffff"
}
Итак, если ваш ApplicationWindow
цвет #FFFFFF
Вы видите светло-серый прямоугольник на фоне окна.
Чтобы сделать белый фон, нужно установить кастом ApplicationWindowStyle
,
ApplicationWindow {
visible: true
width: 640
height: 480
style: ApplicationWindowStyle {
background: Rectangle {
color: "#FFFFFF"
}
}
}