Alles klar, ich versuche, eine Art Messenger mit qml zu machen. Ich habe einen Textbereich und einen Sende-Button. Wenn die Schaltfläche "Senden" angeklickt wird, wird der Text innerhalb des Textfelds irgendwo auf dem Bildschirm angezeigt. Alle anderen Änderungen im Textbereich ändern jedoch den Kontext des Labels. Ich habe versucht mit createObject (...), aber es hat nicht geholfen. Gibt es eine andere Möglichkeit, Labels (oder andere Komponenten) dynamisch zu erstellen?QML Etiketten dynamisch hinzufügen
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.1
ApplicationWindow {
visible: true
width: 640
height: 480
property var xPosition : 500
property var yPosition: 200
title: qsTr("server")
Rectangle{
width: parent.width
height: parent.height
Button{
id: sentButton
width: parent.width/14
x: parent.height + 112
y: parent.width - 200
Material.accent: Material.Blue
Material.background: Material.DeepOrange
Text {
id: name
text: qsTr("Send")
color: "white"
x:parent.width/4
y:parent.height/4
}
onClicked: {
//add label with the context of textarea
}
}
Rectangle{
id:back
height: sentButton.height
width: parent.width - sentButton.width
x:0
y: 435
color: "white"
border.width: 0.5
TextArea{
id:search
placeholderText: qsTr("Search")
x:7
width: parent.width - 25
background: null
}
}
}
}
Was ist das Problem mit ['TextArea :: append'] (http://doc.qt.io/qt-5/qml-qtquick-controls-textarea.html#append-method), um Text hinzuzufügen 'TextArea'? Kannst du zeigen, was in 'onClicked' sein sollte, siehe [mcve] – m7913d
möchte es wie Messenger sein. Also jedes Mal, wenn ich auf "Senden" klicke, sollte der Kontext von "Textarea" zu einem LABAL (meiner Meinung nach) hinzugefügt werden. – Someone
Verwenden Sie ein Modell (z. B. "ListModel"), dem Sie den Inhalt hinzufügen, mit dem Sie anschließend Etiketten als Delegaten von z. ein 'ListView' – derM