[Solved] ItemViews items Focus change signal ?
-
For the ItemsViews (ListView, TreeView, TableView) is there any signal that is emitted when the focus on the items are changed using keys up and down.
Thanks
-
I don't think there are signals specifically for changes of the current item due to keypresses.
-
Do i need to handle eventFilters and then emit signals?
The scenario if there are 20 rows in an itemView and if use key up/down the focus of the item changes, How to get the QModelindex of the item that has focus ?
-
Why does it matter how the item gets it's focus?
-
In each row there is a customWidget (with labels,lineEdit etc) that is added using setIndexWidget, So i select the currentIndex and use TAB , the tab order works fine , but if i change to focus of the items using key up/down and then use TAB , the tab changes for the the previous selected items and not the currentItem that has the focus.
so i though if i can get the modelIndex of the item that has focus then i can setFocus for the widget in that index.
Edit : I installed an eventFiler for my itemView
@bool MyItemView::eventFilter(QObject *target, QEvent *event)
{
if (target == this && event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if (keyEvent->key() == Qt::Key_Up || keyEvent->key() == Qt::Key_Down )
{
CustomWidget *widget= dynamic_cast<CustomWidget *>(indexWidget(currentIndex()));
if (widget!=NULL)
{
//do something
}
return QWidget::eventFilter(target,event);
}} return QWidget::eventFilter(target,event);
}@
This thing works, what should i change so that my current widget accepts TAB order.
-
How to handle shift + tab in key press inside eventFilter >