Виталий Антипов21 декабря 2016 г. 7:21
Удаление записи из БД (Qml ListView)
На основе урока “База данных SQLite и работа с ней в QML Qt” делаю проект с представлением данных в ListView. Уперся в удалении записи из списка, точнее в получении индекса(Id) выбранного элемента. При выборе (подсветке) элемента кликом мыши значение view.currentIndex соответствует выбранному, но при передаче в getId удаляется всегда первый элемент. В чем моя ошибка? Поправьте пожалуйста.
import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.0 Item { id: item1 RowLayout { anchors.fill: parent Rectangle { id: rec1 z:1 anchors.left: parent.left anchors.top: parent.top height: item1.height width: 300 color: "white" border.width: 2 border.color: "#353637" Row{ id: row1 anchors.left: rec1.left anchors.leftMargin: 5 anchors.right: rec1.right anchors.rightMargin: 5 anchors.top: rec1.top anchors.topMargin: 5 height: 40 spacing: 5 TextField { id: tf1 width: 200 placeholderText: "Идентификатор" font.pixelSize: 20 } Button { width: rec1.width - tf1.width - 15 highlighted: true Text { id: name1 text: qsTr("Поиск") font.family: "Arial" font.bold: true color: "white" font.pixelSize: 20 anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter } } } /* Область списка */ Rectangle { id: rec2 color: "white" border.width: 1 border.color: "#353637" width: rec1.width - 10 anchors.left: rec1.left anchors.leftMargin: 5 anchors.top: row1.bottom anchors.topMargin: 5 anchors.bottom: row2.top anchors.bottomMargin: 5 Flickable { id: view width: list.width anchors.fill: parent contentWidth: list.width ListView { id: list width: rec2.width height: rec2.height anchors.fill: parent model: QueryModel1 delegate: numberDelegate focus: true headerPositioning: ListView.OverlayHeader spacing: 1 highlight: Rectangle { id: svet z: -3 y: list.currentItem.y; Behavior on y { SpringAnimation { spring: 2; damping: 0.1 } } color: "#1E90FF" } highlightFollowsCurrentItem: true highlightMoveDuration : 100 } Component { id: numberDelegate RowLayout { id: wrapper property int number: index width: ListView.view.width height: 40 //anchors.topMargin: 300 z: -1 property var view: ListView.view property var isCurrent: ListView.isCurrentItem Rectangle { id: rec3 MouseArea { id: mouse anchors.fill: parent onClicked: view.currentIndex = model.index } z: -4 width: parent.width height: 40 color: "transparent" border.color: "#353637" Text { anchors.centerIn: parent font.pixelSize: 20 text: Identifikator } Text { id: text1 font.pixelSize: 10 text: view.currentIndex } } } } transitions: Transition { NumberAnimation { properties: "opacity"; duration: 400 } } } } Row { id: row2 anchors.left: rec1.left anchors.leftMargin: 5 anchors.right: rec1.right anchors.rightMargin: 5 anchors.bottom: rec1.bottom anchors.bottomMargin: 5 height: 40 spacing: 5 Button { highlighted: true width: row2.width / 3 - 10 / 3 Text { id: name2 text: qsTr("Создать") font.family: "Arial" font.bold: true color: "white" font.pixelSize: 12 anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter } onClicked: { var component = Qt.createComponent("BazaOborudovaniaCreat.qml") var window = component.createObject(rec0) window.show() } } Button { highlighted: true width: row2.width / 3 - 10 / 3 Text { id: name3 text: qsTr("Редактировать") font.family: "Arial" font.bold: true color: "white" font.pixelSize: 12 anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter } } Button { highlighted: true width: row2.width / 3 - 10 / 3 Text { id: name4 text: qsTr("Удалить") font.family: "Arial" font.bold: true color: "white" font.pixelSize: 12 anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter } onClicked: { database.removeRecord(QueryModel1.getId(view.currentIndex)) // Почему-то удаляется первый элемент списка QueryModel1.updateModel(); } } } } Rectangle { id: rec0 anchors.left: rec1.right anchors.top: parent.top anchors.right: parent.right height: item1.height SwipeView { id: swipeView anchors.fill: parent currentIndex: tabBar.currentIndex BazaOborudovania1 { } BazaOborudovania2 { } BazaOborudovania3 { } BazaOborudovania4 { } } TabBar { id: tabBar height: 40 anchors.bottom: parent.bottom anchors.right: parent.right anchors.rightMargin: 0 anchors.left: parent.left anchors.leftMargin: 0 currentIndex: swipeView.currentIndex TabButton { text: qsTr("Общие данные") font.pixelSize: 15 font.family: "Arial" font.bold: true } TabButton { text: qsTr("Критерии") font.pixelSize: 15 font.family: "Arial" font.bold: true } TabButton { text: qsTr("Подшипники") font.pixelSize: 15 font.family: "Arial" font.bold: true } TabButton { text: qsTr("История измерений") font.pixelSize: 15 font.family: "Arial" font.bold: true } } } } }
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
AD
- Akiv Doros
- 11 ноября 2024 г. 14:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50баллов,
- Очки рейтинга-4
m
- molni99
- 26 октября 2024 г. 1:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
m
- molni99
- 26 октября 2024 г. 1:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20баллов,
- Очки рейтинга-10
Последние комментарии
Django - Урок 055. Как написать функционал auto populate field Freckles because of several brand names retin a, atralin buy generic priligy
QML - Урок 035. Использование перечислений в QML без C++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
Qt/C++ - Урок 052. Кастомизация Qt Аудио плеера в стиле AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
Алгоритм сортировки кучей The role of raloxifene in preventing breast cancer priligy precio
PyQt5 - Урок 006. Работа с QTableWidget buy priligy 60 mg 53 have been reported by Javanovic Santa et al
Сейчас обсуждают на форуме
добавить qlineseries в функции buy priligy senior brother Chu He, whom he had known for many years
Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
IscanderChe31 октября 2024 г. 15:43
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3 октября 2024 г. 4:05
Добрый день.
Что-то Вы, по-моему, перемудрили с делегатами и этим самым view.currentIndex…
Попробуйте вместо view.currentIdex использовать list.currentIndex
А то как попало себя ведёт.