【问题标题】:QtQuick and KDE theming issuesQtQuick 和 KDE 主题化问题
【发布时间】:2018-04-20 02:48:00
【问题描述】:

我制作了一些 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:

使用 XFCE:

我也有一个自定义的组合框,在 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:

使用 XFCE:

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

【问题讨论】:

    标签: qml kde


    【解决方案1】:

    您可以使用SystemPalette。例如:

    Window {
        visible: true
        color: palette.window
    
        Label {
            font.pointSize: 20
            text: "Hello world!"
        }
        SystemPalette {
            id: palette
            colorGroup: SystemPalette.Active
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      • 2023-01-28
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 2012-10-13
      • 2019-06-25
      相关资源
      最近更新 更多