| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QtableView как отследить изменение тек.строки |
| Автор: Divine111 11.10.2011, 23:15 |
| Здравствуйте, возникла необходимость отловить изменение текущего элемента QtableView (когда курсорсор перемещается не мышью, а клавой...) На сколько понял, то для QtableView нет сигнала currentChanged... или все же есть? на connect(ui->tableView->selectionModel(), SIGNAL(currentChanged(const QModelIndex& , const QModelIndex&)), this, SLOT(inf_c())); - такая ошибка QObject::connect: Cannot connect (null)::currentChanged(const QModelIndex& , const QModelIndex&) to Kitot::inf_c() может есть более просто способ? |
| Автор: newbee 12.10.2011, 04:24 | ||
Ты б внимательно смотрел, что тебе программа пишет:
|
| Автор: Divine111 12.10.2011, 08:59 |
| Я пробовал activated(QModelIndex index), но не помогает... мне нужно что бы отлавливало нажатие кнопок Up i Down... |
| Автор: newbee 12.10.2011, 09:12 |
| Сорри. Значит ты вызываешь connect перед установкой модели, нужно после, так как selectionModel переустанавливается всякий раз, когда устанавливаешь новую модель. Добавлено через 1 минуту и 12 секунд view->setModel(new myCrazyModel); connect(view->selectionModel(),....); |
| Автор: Divine111 12.10.2011, 15:45 |
| Если честно, то не очень понимаю... ну на сколько понял... ui->tableView->setModel(new QFileSystemModel(this)); connect(ui->tableView->selectionModel(), SIGNAL(currentChanged(const QModelIndex& , const QModelIndex&)), this, SLOT(inf_c())); но это не правильно... |
| Автор: newbee 12.10.2011, 16:04 |
| Divine111, ну не знаю, я перед тем, как второй раз написать, специально проверила, у меня все работало. |
| Автор: Divine111 12.10.2011, 17:52 |
| a ты с QtableView и на currentChanged проверял? |
| Автор: newbee 12.10.2011, 19:40 | ||||
У меня все решительно работает. Qt 4.7.4. |
| Автор: Divine111 12.10.2011, 20:15 | ||
Newbee, cпасибо тебе большое.. разобрался... получилось так:
|