Название: Удаление строки и currentSelection Отправлено: trenkinan от Май 12, 2010, 18:26 Столкнулся с такой проблемой: Талица, контекстное меню, в нем есть пункт удалить, в обработчике к нему пишу:
Код Вот что выдает мне дебаг: Код: (QModelIndex(11,1,0x52d8160,QSortFilterProxyModel(0x52d7c68) ) ) Название: Re: Удаление строки и currentSelection Отправлено: kibsoft от Май 12, 2010, 19:02 А я не понял модель собственная?
Я вообще делал удаление так(своя модель): 1) В классе модели есть QList, который представляет собой выводимые данные. 2) В этом QList при выделении нескольких строк во View я помечал нужные индексы какой-нибудь особой строкой QString removeMark="RemItem"; например. 3) А потом просто делал QList::removeAll("RemItem"); Название: Re: Удаление строки и currentSelection Отправлено: crossly от Май 12, 2010, 19:16 Код: foreach(QModelIndex i,view->selectedIndexes()) Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 12, 2010, 19:18 Интересное конечно предложение, спасибо. Но я бы хотел сделать по аналогии с SQL Browser-ом. т.е. нечто вроде
Код Но пока так не получается, в общем я пока не хочу реализовывать удаление нескольких записей сразу, достаточно будет реализовать удаление одной, выделенной правой мышкой... Название: Re: Удаление строки и currentSelection Отправлено: crossly от Май 12, 2010, 19:21 ааа... ну дык и возьмите код с sqlbrowser.... в чем проблема то??
Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 12, 2010, 19:22 на
Код говорит Код: error: within this context Название: Re: Удаление строки и currentSelection Отправлено: kibsoft от Май 12, 2010, 19:24 Наверное view не доступен тут. Где он объявлен?
Название: Re: Удаление строки и currentSelection Отправлено: crossly от Май 12, 2010, 19:25 как объявлен view?? и кстати да ... нужно ....count()-1
Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 12, 2010, 19:28 Вот по аналогии с примером из браузера:
Код Сносит сразу по 2 записи и меняет странным образом содержимое таблицы. Созданные в данные момент записи удалять не может Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 12, 2010, 19:29 Код
Название: Re: Удаление строки и currentSelection Отправлено: crossly от Май 12, 2010, 19:34 чет я не пойму
Код: QTableView view; Код: ui->mytable Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 12, 2010, 19:51 Извиняюсь, моя таблица создавалась в дизайнере, поэтому к не я обращаюсь:
Код
Название: Re: Удаление строки и currentSelection Отправлено: kibsoft от Май 12, 2010, 19:52 ммм..зачем view тогда? ))
Название: Re: Удаление строки и currentSelection Отправлено: crossly от Май 12, 2010, 19:54 если вам нужно удалить только одну запись (я так понимаю последнюю из выделения), то
Код: model1->setEditStrategy(QSqlTableModel::OnManualSubmitChange); Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 12, 2010, 19:56 Виноват, не использовалась эта view, пересмотрел код, понял почему у меня setAlternateColor не работал, но факт остается, теперь имею такой обработчик меню удалить:
Код
Свежесозданные в момент работы программы записи удаляет, а вот остальные ни в какую Название: Re: Удаление строки и currentSelection Отправлено: kibsoft от Май 12, 2010, 20:03 Я так и не понял что именно надо сделать, все записи выделенные удалить или нет..
Если только одну выделенную, то можно так: Код: QModelIndex currentIndex=ui->mytable->selectionModel()->currentIndex(); Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 12, 2010, 22:52 Сделал так, теперь все работает, Спасибо , но если неверно заполнять форму, то при попытке удаления чего либо возникает критическая ошибка
Название: Re: Удаление строки и currentSelection Отправлено: lit-uriy от Май 12, 2010, 23:43 trenkinan, вроде бы тебе в другой теме я давал фрагменты кода вставки/удаления строк.
Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 12, 2010, 23:50 Да, верно, давал. Все работает, но повторюсь, тлько что заполненные строки, и строки, заполненные не до конца не удаляются( так же и в SQL browser-e). Пока не критично, но буду смотреть. Обнаружил странный глюк, уже второй раз такое с проектом: в какой-то момент часть вносимых изменений перестает обрабатываться, т.е. например, я выбираю другую таблицу коде а программа запускается с выбором прежней, исправляется переписыванием проекта с нуля, ни у кого такого не было?Вроде как виноват ui файл, пока правда не пойму что в нем конкретно, но именно при его перенесении в новый проект на нем начинаются старые глюки...
Название: Re: Удаление строки и currentSelection Отправлено: lit-uriy от Май 13, 2010, 01:36 у тебя какая версия Qt?
Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 15, 2010, 11:12 QT 4.5 и еще при первом запуске проекта, если попытаться отсортировать или удалить что-то вылетает критическая ошибка. При повторном запуске программы вроде как пропадает такое поведение. Но вот если форму заполнять не до конца удалить ее нельзя будет, это я так понимаю проблема самой библиотеки
Название: Re: Удаление строки и currentSelection Отправлено: crossly от Май 15, 2010, 12:01 давай компилябельный код... разберемся....
Название: Re: Удаление строки и currentSelection Отправлено: trenkinan от Май 15, 2010, 12:19 вот пример
|