TextArea проблемный фон QML QT - PullRequest
       31

TextArea проблемный фон QML QT

0 голосов
/ 18 декабря 2018

Пробуя различные комбинации кода и частично решая мою проблему, я столкнулся с поведением, которое я не могу полностью объяснить.Итак, когда я создаю простое TextArea без Scrollview, оно выглядит так:

enter image description here

RowLayout  {
    id: rowLayout
    Rectangle{                       
        height: 50
        width: 295
        TextArea {
            id: textArea
            text: (" message...")
           wrapMode: Text.WrapAnywhere
           anchors.fill: parent
        }                
    }

Текстовая область создает фон по умолчанию.А теперь я хочу сделать TextArea с ScrollView ТАКЖЕ с фоном TextArea по умолчанию, но получается что-то вроде этого:

enter image description here

RowLayout  {
    id: rowLayout
    Rectangle{
       height: 50
        width: 295
    ScrollView {
       id: scrollView1
        anchors.fill: parent

    TextArea {
            id: textArea
            text: (" message...")
           wrapMode: Text.WrapAnywhere                           
        }
    }
}

Единственный шанс установить фон TextArea по умолчаниюустанавливается implicitHeight, implicitWidth, но затем после ввода текста в TextArea, пока не появится полоса прокрутки, фон расширяется по всей длине, проходя позади других компонентов, например:

enter image description here

RowLayout  {
    id: rowLayout
    Rectangle{
        //color: "#00000000"
       height: 50
        width: 295
    ScrollView {
       id: scrollView1
        anchors.fill: parent
    TextArea {
            id: textArea
            text: (" message...")
           wrapMode: Text.WrapAnywhere
              implicitHeight: 50
              implicitWidth: 295
        }
    }
}

Так что единственное, что мне нужно, это прокручиваемое текстовое поле, но с этим черным фоном по умолчанию, а НЕ с моим фоном, который я могу сделать с прямоугольником.Кто-нибудь может взглянуть?Спасибо:)

1 Ответ

0 голосов
/ 18 декабря 2018

Я старался изо всех сил.Посмотрите пример ниже, надеюсь, это поможет =)

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3

ApplicationWindow {
    visible: true

    width: 400
    height: 400

    RowLayout {
        width: 295
        height: 50

        anchors.centerIn: parent

        ScrollView {
            Layout.fillHeight: true
            Layout.fillWidth: true

            background: Rectangle { color: "black" }

            TextArea {
                id: messageField

                placeholderText: qsTr("message...")

                color: "white"

                wrapMode: TextArea.WrapAnywhere
            }
        }
    }
}

Результат:

enter image description here

...