Ubuntu SDK QML 如何改变TextField的背景颜色

Ran*_*y_O 4 application-development qml ubuntu-sdk ubuntu-touch

我有一种情况,我的 QML 应用程序 MainView 的背景颜色导致文本字段条目在同样深棕色的背景上具有灰色字体。这使得几乎不可能阅读文本字段中输入的文本。

输入文本时很好,因为背景变为白色并且深色文本现在可见,但是当未选择文本字段时,文本是不可读的。

有没有办法更改文本字段的背景颜色?我已经尝试过更改文本颜色,它在不输入文本时有效,但是一旦我在文本字段中单击以输入文本,我就无法再阅读它,因为文本字段背景颜色变为白色并且文本颜色也是很轻。

任何人都可以建议解决这个问题?

谢谢

Syl*_*eau 6

Ubuntu SDK 带有自己的样式化TextField元素。在深色背景下,您可以通过导入使用默认的 Qt 版本QtQuick.Controls(仅限 14.04)。它将始终呈现白色背景,但也可以使用以下样式进行设置TextFieldStyle

import QtQuick 2.0
import Ubuntu.Components 0.1
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1

MainView {
    width: 400
    height: 300
    backgroundColor: "black"

    Column {
        spacing: units.gu(2)
        anchors.centerIn: parent
        TextField {
            placeholderText: "ask"
        }
        TextField {
            placeholderText: "Enter text"
            text: "ubuntu"
            style: TextFieldStyle {
                textColor: "black"
                background: Rectangle {
                    radius: 5
                    color: "gold"
                    implicitWidth: 100
                    implicitHeight: 24
                    border.color: "#333"
                    border.width: 1
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它看起来像下面的屏幕截图:

在此处输入图片说明

来源:http : //qt-project.org/doc/qt-5/qml-qtquick-controls-styles-textfieldstyle.html