Qt quick ApplicationWindow 'color' для цвета фона не работает



Я создал простое приложение Qt quick с одним главным.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"
}
}
754   1  

1 ответ:

ApplicationWindowStyle Тип QML обеспечивает стиль для 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"
        }
    }
}

Comments

    Ничего не найдено.