Название: [РЕШЕНО] Как получить номер записи в ListView? Отправлено: Гурман от Май 06, 2019, 18:00 Есть ListView() с делегатами Rectangle, в каждом есть MouseArea в которой onDoubleClicked вызывает С++ метод в классе текущего связанного айтема модели. Тот посылает ссылку на себя редактору айтема и он открывается, айтем можно редактировать. Но возникла необходимость получить текущий номер айтема в списке, а не сам айтем. Как это сделать в ListView? Записывать в сами айтемы их номера нельзя - массив ссылок на айтемы сортируется с помощью std:sort(), сложная сортировка по нескольким полям, соответственно номера будут не актуальны. В принципе, можно после каждой сортировки заново прописывать порядковые номера в айтемы, но это грубо. Должна быть возможность получить номер айтема, который был даблкликнут в ListView. Но как? Получить координаты нажатия, и по ним вычислить номер айтема, зная вертикальный размер каждого? Или есть более простой способ?
Если Код: ListView { это оно? Название: Re: Как получить номер записи в ListView? Отправлено: Гурман от Май 06, 2019, 22:20 Всё, нашёл сам.
Код: MouseArea { Но есть традиционный для Qt глюк - если делать передачу числа через проперти и назвать её просто index, соответственно установку его setIndex(int), то она будет вызываться, но будет всегда получать 0, а не настоящее число. Оставлю это, может кому-то ещё пригодиться. |