Russian Qt Forum

Qt => Model-View (MV) => Тема начата: RustAlex от Сентябрь 28, 2015, 17:50



Название: ListView и множественное выделение в QML
Отправлено: RustAlex от Сентябрь 28, 2015, 17:50
Неужели нельзя задать SelectionMode.MultiSelection для ListView?
Использовать для множественного выделения только TableView? Т.е. брать только один столбец и привязывать модель выделения.


Название: Re: ListView и множественное выделение в QML
Отправлено: Old от Сентябрь 28, 2015, 17:56
setSelectionMode определен в QAbstractItemView, поэтому он работает для любых его наследников, включая QListView.


Название: Re: ListView и множественное выделение в QML
Отправлено: RustAlex от Сентябрь 28, 2015, 18:12
Свойства selectionMode - нет у ListView...
Необходимо по id из QML кода связать в с++ коде с QListView и уже там задать свойство selectionMode? Так?
Непонятно почему в TableView - свойство сделали доступным в QML...


Название: Re: ListView и множественное выделение в QML
Отправлено: Old от Сентябрь 28, 2015, 18:15
http://doc.qt.io/qt-5/qml-qtquick-controls-tableview.html
Здесь описан selectionMode.


Название: Re: ListView и множественное выделение в QML
Отправлено: RustAlex от Сентябрь 29, 2015, 10:47
Да. Это как раз описание в TableView. В ListView нельзя задать selectionMode - Cannot assign to non-existent property "selectionMode"

Нашел описание идеи решения здесь:
http://stackoverflow.com/questions/3879591/qml-listview-multiselection#3879591

Хотелось бы конечно примерчик...


Название: Re: ListView и множественное выделение в QML
Отправлено: RustAlex от Сентябрь 29, 2015, 20:16
Внутри формы с ListView создано дополнительно GridView - в которые я помещаю выбранные элементы (множественное выделение пока так и не работает)

Код:
ListModel {
                        id: lmSelectUser
                        ListElement {
                            name: "Адресат 1"
                            keyId: 0
                        }
                        ListElement {
                            name: "Адресат 2"
                            keyId: 1
                        }
                    }

После наполнения (с использованием append ) хочу передать модель в  с++, где у меня определена функция (ниже), каким типом передается ListModel? тип ListModel - хоть и определен в listmodel.h недоступен... или я чего-то недоделал

Код:
Q_INVOKABLE void invSendMessage( const _КАКОЙ_КЛАСС_ * model, QString textMessage)


Название: Re: ListView и множественное выделение в QML
Отправлено: RustAlex от Сентябрь 30, 2015, 13:21
Может путанно написал. Попробую уточнить вопрос и задать его лаконично:
QML
Код:
ListModel{ id: lmAddress ....}

windwow.invSendRecepient(lmAddress)

При этом в С++ где определит функция как Q_INVOKABLE
каким классом передается ListModel?
C++
Код:
Q_INVOKABLE void invSendRecepient(_КОКОЙ_КЛАСС_)