Всем привет!
Нужно выбрать несколько лекарств из предложенного списка и их добавить в заказ (n insert into в таблицу состав заказа, где n количество выбранных лекарств). Список лекарств предоставляется выборкой из БД. Я сделал выборку в listView. Сделал сбор полученных данных, но получается забрать только последний выбранный препарат из listView. А мне нужно, чтобы пользователь мог выбрать сразу несколько, а не один, препарат. Может что иное использовать нежели listView. Препаратов в списке может быть штук 500, нужно компактно вывести с лифтом и предоставить возможность множественного выбора. Потом это нужно прочитать и передать мне в код строки, кои пользователь выбрал и нажал кнопку добавить в корзину.
Спасибо за ответы!
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "pharmacy_orders.h"
#include <QtSql>
#include <QStandardItemModel>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlQuery query;
query.exec("SELECT Название FROM Лекарства");
QStringList sequence_len;
QStandardItemModel *model = new QStandardItemModel;//новая модель списка
QStandardItem *item;//элемент списка
while (query.next())
{
item = new QStandardItem(query.value(0).toString());
model->appendRow(item);
}
//Cоединение модели списка с конкретным списком
ui->listView->setModel(model);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QString Result;//Итоговый результат
QModelIndexList selectedIndexes = ui->listView->selectionModel()->selectedIndexes();
QStringList selectedTexts;//в теории может быть несколько выделенных пунктов списка
//пробегаем по всем элементам списка
foreach(const QModelIndex &idx, selectedIndexes)
{
selectedTexts << idx.data(Qt::DisplayRole).toString();//выдергиваем наименования значений списка
}
Result=selectedTexts.join(',');//соединяем все найденные элементы
//используем результат
qDebug() << Result;
/*
Pharmacy_orders po;
po.setModal(true);
po.exec();
*/
}