web-dev-qa-db-ja.com

Ubuntu SDK QML TextFieldの背景色を変更する方法

QMLアプリMainViewの背景色が原因で、テキストフィールドエントリの濃い茶色の背景に灰色の文字が表示される場合があります。これにより、テキストフィールドに入力されたテキストを読み取ることがほとんど不可能になります。

テキストを入力すると、背景が白に変わり、暗いテキストが表示されるようになりますが、Texfieldが選択されていない場合、テキストは判読できません。

テキストフィールドの背景色を変更する方法はありますか?私はすでにテキストの色を変更しようとしましたが、テキストを入力しないときに機能しますが、テキストフィールドをクリックしてテキストを入力するとすぐに、テキストフィールドの背景色が白に変わり、テキストの色も非常に軽い。

誰もが提案できるこの問題の解決策を持っていますか?

ありがとう

4
Randy_O

Ubuntu SDKには、独自のスタイル設定された TextField 要素が付属しています。暗い背景では、QtQuick.Controls(14.04のみ)をインポートすることにより、デフォルトのQtバージョンを使用できます。常に白い背景をレンダリングしますが、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
                }
            }
        }
    }
}

以下のスクリーンショットのようになります。

enter image description here

ソース: http://qt-project.org/doc/qt-5/qml-qtquick-controls-styles-textfieldstyle.html

6
Sylvain Pineau