设置工具按钮

时间:2017-09-02 18:12:05

标签: qt qml qt-quick

我正在尝试为Plasma组件设置背景颜色,特别是KDE锁定屏幕中使用的键盘布局按钮。 (按钮有时在浅色背景上看不清楚,所以我试图让它变暗)。

以下是我正在尝试修改的KeyboardLayoutButton.qml的完整内容:

import QtQuick 2.1
import QtQuick.Controls 1.1 as QQC

import org.kde.plasma.components 2.0 as PlasmaComponents

import org.kde.plasma.workspace.keyboardlayout 1.0

PlasmaComponents.ToolButton {
    id: kbLayoutButton

    iconName: "input-keyboard"
    implicitWidth: minimumWidth
    text: layout.currentLayoutDisplayName

    Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to change keyboard layout", "Switch layout")

    visible: layout.layouts.length > 1

    onClicked: layout.nextLayout()

    KeyboardLayout {
          id: layout
              function nextLayout() {
              var layouts = layout.layouts;
              var index = (layouts.indexOf(layout.currentLayout)+1) % layouts.length;
              layout.currentLayout = layouts[index];
          }
    }
}

现在我可以在 kbLayoutButton内放置一个半透明的矩形,它在那里可见,但它不会提高按钮文本的可见性,因为它位于上方文字广告只会降低对比度。我想在按钮下面放置一个矩形

据我了解,我需要将按钮设为彩色矩形的子项。

Rectangle {
   color: "black"
   PlasmaComponents.ToolButton {
     // full content of kbLayoutButton
   }
}

然而,当我尝试这样做时,按钮完全不可见。当我尝试将其包装在Item中时也是如此。

我对QML很新,似乎找不到任何线索。如何设置背景?

1 个答案:

答案 0 :(得分:2)

我不熟悉血浆成分,但你给Rectangle一个大小了吗?试试这个:

Rectangle {
    implicitWidth: toolButton.implicitWidth
    implicitHeight: toolButton.implicitHeight
    color: "black"

    PlasmaComponents.ToolButton {
        id: toolButton
        // full content of kbLayoutButton
    }
}