Название: Срочно помогите с таблицей! Отправлено: linuxoid от Октябрь 16, 2007, 16:25 как считать выделенные ячейки в QTabeView и засунуть их в переменную??? ???!!! использую и QSqlTableModel и есть своя модель!Помогите пожалуйста срочно, я уже всё перепробовал!то ли у меня QT глючит, то ли я уже глючу)заранее спасибо!
QT 4.2.3 Название: Re: Срочно помогите с таблицей! Отправлено: ритт от Октябрь 16, 2007, 16:45 копай QItemSelectionModel
/убей - не помню была ли данная модель в 4.2.х, но думаю, что да/ Название: Re: Срочно помогите с таблицей! Отправлено: Kainit от Октябрь 16, 2007, 16:48 Код: QString TMyMegaTableView::GetAllSelectedInOneString() Можно придумать полаконичнее, но так тоже должно работать. Но самое главное что QItemSelectionModel тут совершенно ни к селу. Название: Re: Срочно помогите с таблицей! Отправлено: pastor от Октябрь 16, 2007, 17:02 QItemSelectionModel в тему также, так как selectedIndexes работает через этот класс
Название: Re: Срочно помогите с таблицей! Отправлено: Kainit от Октябрь 16, 2007, 17:13 Я в том смысле что копать лучше с QAbstractItemView... а что selectedIndexes через QItemSelectionModel работают, то понятно, но для понимания MVC надо много времени, а раз уж человеку надо срочно...
Название: Re: Срочно помогите с таблицей! Отправлено: ритт от Октябрь 16, 2007, 19:38 кайнит (правильно?), дело в том, что я попросту не имею понятия откуда линуксоид собрался читать выделенные ячейки
Цитировать как считать выделенные ячейки в QTabeView и засунуть их в переменную??? !!! использую и QSqlTableModel и есть своя модель! если читать их надо из вьюхи, конечно, быстрее воспользоваться функциями-обёртками если же читать их надо вне вьюхи (из модели или ещё откуда), то других вариантов не вижу, кроме как читать у вьюхи QItemSelectionModel и работать непосредственно с ней Название: Re: Срочно помогите с таблицей! Отправлено: linuxoid от Октябрь 17, 2007, 09:47 ПОМОГИТЕ!Выглядит всё так::::
1) QModelIndexList index = tableView->selectedIndexes(); 2) for(int i=0; i<index.count(); i++) 3) var = tableView->model()->data(index.at(i)); 4) qDebug() << var.toString(); но проблема в 1 - ой строчке!пишет: !!! error: ‘virtual QModelIndexList QTableView::selectedIndexes() const’ is protected!!!ъ срочно помогите пожалуйста!!!Заранее благодарю. :-\ Название: Re: Срочно помогите с таблицей! Отправлено: Kainit от Октябрь 17, 2007, 10:00 Про срочность можешь уже и не писать.
Есть 2 варианта, правильный и чуть менее. 1. (правильный) метод должен быть методом твоего View (просто наследуешь тупо обычный QTabeView и добавляешь метод) Код: QString TMyMegaTableView::GetAllSelectedInOneString() Код: class TMyMegaTableView : public QTabeView 2. (чуть менее правильный) тебе всё равно придётся отнаследоваться и тебе надо будет распаблишить метод selectedIndexes(), но это ХАК и за такое бъют по рукам раскалённым стальным прутом. И надо помнить что есть прямая дырка, а есть попытки почесать пятку через плечо. Прямая и абсолютно законная дырка - наследование. Название: Re: Срочно помогите с таблицей! Отправлено: pastor от Октябрь 17, 2007, 10:01 Хм, все верно, этот метод protected. Юзай значит QItemSelectionModel или создавай наследника от QTableView
Название: Re: Срочно помогите с таблицей! Отправлено: Пантер от Октябрь 17, 2007, 11:30 Я делал так. Все работает замечтательно.
qtvReferences - вьюха QItemSelectionModel* qismSelection=qtvReferences->selectionModel(); QModelIndexList qmilIndexes=qismSelection->selectedIndexes(); for (int i=0; i<qmilIndexes.count(); i++) { if (qmilIndexes.at(i).column()!=0) continue; // Какое-либо действие } В qmilIndexes попадут все ячейки и в цикле их нужно отсеивать, т.е. я отсеиваю все, которые не в первой колонке. Название: Re: Срочно помогите с таблицей! Отправлено: linuxoid от Октябрь 17, 2007, 11:55 спасибо!Вы Человеки с большой буквы!
Название: Re: Срочно помогите с таблицей! Отправлено: ритт от Октябрь 17, 2007, 12:10 и всё-таки селекшнмодель! :)
Название: Re: Срочно помогите с таблицей! Отправлено: Kainit от Октябрь 17, 2007, 12:21 Цитировать и всё-таки селекшнмодель! Да, похоже что так.Но программеры троллевские непоследовательны tableView->selectedIndexes(); - приваченный tableView->selectionModel()->selectedIndexes(); - публичный Просто бред... Название: Re: Срочно помогите с таблицей! Отправлено: ритт от Октябрь 17, 2007, 12:57 это не бред, это - концепция модель/вью-ппрограммирования троллей
вы ведь не станете называть бредом, допустим, формат тындекс-рсс, раз уже существует формат рсс-атом...или станете? :) ну и, в конце-концов, всегда можно отправить саггест в трекер и подробно обрисовать ситуацию на удивлённый вопрос дежурного: "а зачем вам публичный селектедИндексез во вьюхе, если он есть в публичной селекшнмодели?" Название: Re: Срочно помогите с таблицей! Отправлено: Kainit от Октябрь 17, 2007, 14:25 Насчет ындекс-рсс не скажу а вот если поглядеть исходники, оказывается что всё не совсем так как я полагал и
tableView->selectedIndexes(); tableView->selectionModel()->selectedIndexes(); это разные вещи! Код: QModelIndexList QTreeView::selectedIndexes() const О как. Т.е., пользоваться tableView->selectedIndexes(); гораздо более логично для описанных выше задач, нежели tableView->selectionModel()->selectedIndexes(). |