У меня есть 2 статических ListModel в этом примере, в действительности я использую LocalStorage, чтобы заполнить ListModel, но для простоты я добавил 2 кнопки, чтобы изменить Модели, но я хочу связать его с событием щелчка столбца заголовка TableView. и не могу понять, как это сделать из других примеров попыток сортировки, я не знаю, возможно ли выполнить сортировку с использованием ListModel, я не смог найти ни одного примера, поэтому кто-то может объяснить это или показать пример, о том, как заменить кнопки событиями щелчка в столбце, я могу использовать это для передачи сортировки по аргументу в мой SQL-оператор LocalStorage для обновления ListModel.
Обновление: я забыл упомянуть, что искал решение Qml / Qml JavaScript, по какой-то причине я подумал, что если я уберу тег C ++, я бы избежал этой проблемы, я буду использовать этот метод в качестве крайней меры, так как Я решил написать это приложение, используя только Qml, без серверной части C ++, но у меня есть эта версия сейчас, так как у меня были проблемы с тем, как я импортировал JavaScript, написанный для Web, в отличие от Qml JavaScript, который отличается от ,
Чтобы было ясно, я пытаюсь изменить модели, а не сортировать строки, это не тот же вопрос, разница в том, как используется событие click, и все, что я хочу сделать, это изменить имя запроса. в конце, который является Qml JavaScript, причина, по которой я не хочу решений C ++, заключается в том, что я делаю это в Felgo, но это не вопрос Felgo, он отлично работает с C ++, но вы должны настроить Live для работы с этим, и на самом деле это будет исходный код, который я открываю для github и хочу, чтобы он мог работать без C ++, и, похоже, должен быть способ перехватить это, и Мышь сработал для меня, захватывая его даже не загружать заголовок, так как он перехватывает в начале и ждет ввода, но если мне придется, я уверен, что ваше решение будет работать, тогда я приму его, извините за эту путаницу, я запутался в том, что использовать теги, поэтому изначально я включил только qml, и к нему был добавлен qt, что, хотя я и был хорошей идеей, потому что это действительно вопрос Qt, который касается Только для Qml, а не C ++, это еще один тег, это тенденция, которую продвигает Felgo, и у них есть веские причины, ее проще использовать программистам на JavaScript или C / C ++, а Live Debugging работает быстрее, когда используется без Серверная часть C ++, так что теперь я дал больше информации, когда Первоначально я думал, что это был простой вопрос, который касается только Qml, если нет, то был дан ответ для C ++, если нет лучшего способа увидеть, как все, что я хочу сделать, это нажать на заголовок столбца так же, как я хотел бы на кнопку, могу ли я вставить кнопку в столбец? Если так, то как? Я не смог найти пример этого, только те, которые влияли бы на свойства текста и сортировали строки, а это не то, что я пытался сделать, только обновляли модель.
import QtQuick 2.11
import QtQuick.Controls 1.3
import QtQuick.Layouts 1.3
import QtQuick.Window 2.11
Window {
visible: true
width: 640
height: 480
title: qsTr("TableView Sort")
Column {
id: column
spacing: 9
anchors.fill: parent
TableView {
id: tableView
anchors.left: column.left
anchors.leftMargin: 6
anchors.right: column.right
anchors.rightMargin: 273
highlightOnFocus: true
model: myListModel1
sortIndicatorVisible: true
TableViewColumn {
role: "title"
title: "Column 1"
//width: 133
}
TableViewColumn {
role: "description"
title: "Column 2"
//width: 166
}
}
Button {
id: button1
text: qsTr("Model 1")
anchors.left: column.left
anchors.leftMargin: 6
onClicked: {
tableView.model = myListModel1
}
}
Button {
id: button2
text: qsTr("Model 2")
anchors.left: column.left
anchors.leftMargin: 6
onClicked: {
tableView.model = myListModel2
}
}
}
ListModel {
id: myListModel1
ListElement {
title: "Orange"
description: "Orange is Orange"
}
ListElement {
title: "Banana"
description: "Yellow"
}
ListElement {
title: "Apple"
description: "Red"
}
}
ListModel {
id: myListModel2
ListElement {
title: "Apple"
description: "Red"
}
ListElement {
title: "Banana"
description: "Yellow"
}
ListElement {
title: "Orange"
description: "Orange is Orange"
}
}
}
Обновление: это сработало
onSortIndicatorColumnChanged: tableView.model = (sortIndicatorColumn == 0) ? myListModel1 : myListModel2
onSortIndicatorOrderChanged: tableView.model = (sortIndicatorColumn == 0) ? myListModel1 : myListModel2
Спасибо за любую помощь.