crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Не работает слот selectRow класса QQtableView
dima154
  опции профиля:
сообщение 12.11.2009, 16:07
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 10.10.2009
Пользователь №: 1148

Спасибо сказали: 0 раз(а)




Репутация:   0  


Я определил свой класс :

class UsersDictionaryTableView : public QTableView{
    Q_OBJECT
public:
    UsersDictionaryTableView(QWidget * parent /* = 0 */);
private slots:
    void selectRow(int);
};


Переопределил слот :

void UsersDictionaryTableView::selectRow(int row){
    qDebug()<<row;
}


Но при выделении строки в виджете, слот не вызывается, а мне надо обрабатывать это выделение.
Как я понимаю, надо присоединить этот слот к какому-то сигналу, но в QTableView и его родительских классах я похожих сигналов не нашел.
Как решить данную проблему?
Заранее спасибо всем ответившим!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
dima154
  опции профиля:
сообщение 13.11.2009, 15:29
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 10.10.2009
Пользователь №: 1148

Спасибо сказали: 0 раз(а)




Репутация:   0  


Разобрался с проблемой.
Обрабатываю сигнал clicked(const QModelIndex&) c установленым флагом QAbstractItemView::SelectRows и из selectionModel вытаскиваю содержимое строки.
CODE
void MyTableView::slActivated(const QModelIndex &index){
index.row();
//Получили модель выбора
QItemSelectionModel* selection = this->selectionModel();
//Получили модельные индексы модели выбора
QModelIndexList indexes = selection->selectedIndexes();
//Выводим модельные индексы
foreach(QModelIndex index,indexes){
qDebug()<<index.row()<<","<<index.column()<<"\t"<<index.data(Qt::DisplayRole).toString()<<"\n";
}
}

Ввел в заблуждение тот факт, что функция void selectRow ( int row ) была описана как [slot].
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.12.2024, 4:49