Название: Редактирование QTableView Отправлено: NetWorm от Август 11, 2011, 17:03 Есть таблица заполненная предварительно данными типа |товар|цена|кол|сумма|
Как мне при редактировании ячейки количество или цена, расчитывать сумму и значение записывать в ячейку сумма!!! Название: Re: Редактирование QTableView Отправлено: GreatSnake от Август 11, 2011, 17:30 Читать Программирование модель/представление (http://doc.crossplatform.ru/qt/4.7.x/model-view-programming.html)!!!
Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 11, 2011, 18:59 Это я так понимаю мне надо написать Делегат к модели QStandartItemModel?
Название: Re: Редактирование QTableView Отправлено: GreatSnake от Август 11, 2011, 21:16 Это я так понимаю мне надо написать Делегат к модели QStandartItemModel? Неправильно понимаешь. Читай дальше.Делегат нужен для отображения/редактирования данных. Тебе же достаточно взять значения ячеек через QAbstractItemModel::data(), сложить их и поместить в результирующую ячейку через QAbstractItemModel::setData(). Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 11, 2011, 21:23 Это то понятно! Но как мне определить событие что что была изменена ячейка! через Слот?
вот щас пробую как раз это, но пока не понимаю как слоту передать например индекс! Название: Re: Редактирование QTableView Отправлено: GreatSnake от Август 11, 2011, 21:29 Код
Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 11, 2011, 21:34 Код
но как передать в функцию параметр например текущий индекс или item Название: Re: Редактирование QTableView Отправлено: GreatSnake от Август 11, 2011, 21:36 Код но как передать в функцию параметр например текущий индекс или item Код Только сигнал нужно вешать после заполнения таблицы или блокировать его перед перезаливкой. Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 11, 2011, 21:39 Вот почему тоне получает он индекса сего!!!
Название: Re: Редактирование QTableView Отправлено: GreatSnake от Август 11, 2011, 21:41 Вот почему тоне получает он индекса сего!!! Что значит не получает? Показывай имплементацию editFinish()?Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 11, 2011, 21:46 ВСе!!! Благодарю за помощь получилось!
Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 11, 2011, 21:52 Тогда еще вопросик. А могу ли я как-то передать например не только индекс, а еще и ссылку на item?
Название: Re: Редактирование QTableView Отправлено: GreatSnake от Август 11, 2011, 22:00 Тогда еще вопросик. А могу ли я как-то передать например не только индекс, а еще и ссылку на item? Не понял про какой айтем идёт речь? QStandardItem?Код
Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 11, 2011, 22:04 так понятно надо идти в сторону itemData(index);
Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 11, 2011, 22:28 И все же не пойму как дальше вот есть у меня индекс... Как мне таблице на той же строчки присвоить значение другой ячейке...
Код
Название: Re: Редактирование QTableView Отправлено: GreatSnake от Август 11, 2011, 22:39 Как-то так:
Код
Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 12, 2011, 04:23 Код - получается вот тут ничего нет. т.е. он типа ничего не получает!!! Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 12, 2011, 20:02 Код
Он выполняет это несколько раз? т.е. сколько столбцов столько раз выполняет цикл??? Название: Re: Редактирование QTableView Отправлено: GreatSnake от Август 13, 2011, 15:28 Код - получается вот тут ничего нет. т.е. он типа ничего не получает!!! Код
Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 13, 2011, 16:37 Код
Я уже сделал вот так!!!!! Оно просто выполняется столько раз сколько колонок. А так я каждый раз получаю именно значение той колонки которую мне нужно.... Думаю вопрос закрыт... Благодарю за помощь!!!! Название: Re: Редактирование QTableView Отправлено: GreatSnake от Август 13, 2011, 18:55 При изменении значения в editFinish() опять отработает сигнал и снова вызовется editFinish(). По идее могло бы и зациклиться. Нужно просто менять значение 5-й колонки только при изменении 2-й или 4-й.
Название: Re: Редактирование QTableView Отправлено: NetWorm от Август 13, 2011, 20:38 так придется заводить внешнюю переменную и следить за ее обнулением! Но мне этого так не хочется!!
|