crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Реализация смены фокуса по кругу.
Ponchikus
  опции профиля:
сообщение 20.7.2015, 21:43
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 25.6.2015
Пользователь №: 4411

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




Репутация:   0  


Здравствуйте, прошу помощи в реализации смены фокуса виджета по-кругу, путем нажатия клавиши клавиатуры.

Есть виджет, в нем фильтром отлавливаю событие нажатия клавиши, вот пример:
bool Add::eventFilter(QObject *o, QEvent *e)
{
    if(o==bb || o==lines)
    {
        if(e->type()==QEvent::KeyPress)
        {
            QKeyEvent *ke=static_cast<QKeyEvent*>(e);
            if(ke->key()==Qt::Key_J)
            {
                focusNextChild();
                return true;

            }

        }
    }
    return QWidget::eventFilter(o,e);
}

Но фокус доходит до последнего виджета и все. А нужно чтобы фокус ходил по кругу. Пробовал всякие QWidget::focusNextPrevChild(bool next) и т.д. функции, но не получилось, как реализовать?

Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Ponchikus
  опции профиля:
сообщение 21.7.2015, 16:29
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 25.6.2015
Пользователь №: 4411

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




Репутация:   0  


Проблема решена.
Надо было добавить на все виджеты installEventFilter(), цепочка виджетов была не полной и обрывалась, из-за чего фокус доходил до определенного виджета и на нем и оставался, всем спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 19.4.2024, 8:34