QtQuick和KDE主题问题

时间:2017-11-07 16:03:34

标签: qml kde

我已经制作了一些QtQuick程序,我认为它一切正常,直到我在我的笔记本电脑上试用了它,它运行KDE,带有Breeze Dark主题。

带有标签的简单程序几乎无法读取:

import QtQuick.Window 2.2
import QtQuick.Controls 2.2

Window
{
    visible: true

    Label
    {
        font.pointSize: 20
        text: "Hello world!"
    }
}

使用KDE Breeze Dark:

enter image description here

使用XFCE:

enter image description here

我也有一个定制的组合框,在KDE下它看起来很糟糕。它在默认的KDE主题上有相同的问题,只是反转了颜色:

import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick 2.7

Window
{
    visible: true

    minimumWidth: 200
    minimumHeight: 200

    ComboBox
    {
        id: combo

        model: ["Apple", "Banana", "Orange"]

        width: 150
        height: 50

        delegate: ItemDelegate
        {
            id: item

            width: parent.width

            contentItem: Text
            {
                text: modelData
                font.pointSize: 15
            }

            MouseArea
            {
                anchors.fill: parent

                hoverEnabled: true
                propagateComposedEvents: true

                onClicked: mouse.accepted = false
                onPressed: mouse.accepted = false
                onReleased: mouse.accepted = false
                onDoubleClicked: mouse.accepted = false
                onPositionChanged: mouse.accepted = false
                onPressAndHold: mouse.accepted = false

                onEntered:
                {
                    item.highlighted = true
                }

                onExited:
                {
                    item.highlighted = false
                }
            }
        }

        contentItem: Text
        {
            id: dropDown

            anchors.fill: parent

            verticalAlignment: Text.AlignVCenter
            horizontalAlignment: Text.AlignHCenter

            font.pointSize: 15

            text: combo.displayText
        }
    }
}

使用KDE Breeze Dark:

enter image description here

使用XFCE:

enter image description here

所以,我不确定这是KDE问题还是QtQuick问题。 我想我想知道如何禁用某些程序的KDE主题,或修改我的Qml以便在主题时很好地显示我的程序。 除了一些手动实现它的提议或方法之外,我几乎找不到关于QtQuick主题的任何文献。

1 个答案:

答案 0 :(得分:0)

您可以使用SystemPalette。例如:

Window {
    visible: true
    color: palette.window

    Label {
        font.pointSize: 20
        text: "Hello world!"
    }
    SystemPalette {
        id: palette
        colorGroup: SystemPalette.Active
    }
}