Russian Qt Forum

Qt => Вопросы новичков => Тема начата: koldun90 от Октябрь 11, 2014, 10:01



Название: отслеживание клавиш вверх вниз по модели
Отправлено: koldun90 от Октябрь 11, 2014, 10:01
Здравствуйте
Есть qfilesystemmodel представленный в qtreeview
соответственно при клике мышкой по дереву файловой системы испускается сигнал clicked ( const QModelIndex & index )
который собственно активирует слот on_treeview_clicked(const QModelIndex & index)
в этом слоте у меня прописано добавление абсолютного пути файла или папки в QStringlist
А вот мне нужно сделать так чтобы когда я нажимал клавиши вверх вниз(стрелочки) на клавиатуре(когда переходит выбор с одного поле на другое) у меня как бы активировался чтоли аналогичный сигнал  и чтобы туда передавался этот же QModelIndex


Название: Re: отслеживание клавиш вверх вниз по модели
Отправлено: gil9red от Октябрь 11, 2014, 10:07
Переопределяйте в qtreeview keyPressEvent и keyReleaseEvent или используйте фильтр installEventFilter, и в них уже опрабатываете какие вам нужны клавиши, и шлите свои сигналы


Название: Re: отслеживание клавиш вверх вниз по модели
Отправлено: koldun90 от Октябрь 11, 2014, 10:14
мне же нужно как бы послать сигнал не просто по нажатию клавиши вниз или вверх а чтобы туда передался QmodelIndex который в данный момент выбран (выделен синем) по аналогии как Treeview clicked

Код:
void mytreeview::keyPressEvent(QKeyEvent *event)  
{
    if (event->key()==Qt::Key_Up | event->key()==Qt::Key_Down)   /
    {
        emit signal()  // что мне тут передавать надо и скаким сишгалом/слотом связывать
    }
}


Название: Re: отслеживание клавиш вверх вниз по модели
Отправлено: kambala от Октябрь 11, 2014, 14:36
как бы нужно этот индекс самому вычислить через model->index(). чтение документации очень поможет.


Название: Re: отслеживание клавиш вверх вниз по модели
Отправлено: koldun90 от Октябрь 11, 2014, 18:40
если использовать index от qfilesystemmodel то как мне нужно в model->index(полный путь)
передать полный путь файла или папки..
Вопрос а как мне его узнать?