Russian Qt Forum
Октябрь 01, 2024, 00:26
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Фокус ввода
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Фокус ввода (Прочитано 6198 раз)
Vladimir2006
Гость
Фокус ввода
«
:
Ноябрь 20, 2006, 20:00 »
Привет всем!
Подскажите пожалуйста каким образом в Qt 4.1.4 под линуксом установить фокус ввода для требуемого виджета?
У меня есть класс, наследник QWidget, на нем три контрола: QListWidget и два QPushButton. Я в конструкторе родителя создаю эти три контрола и потом вызываю для виджета списка функцию setFocus(), reason-ы все перебрал. Этот список вроди как получает фокус ввода (focus() возвращает true), но реально этот контрол остается без фокуса, пока Tab не нажмешь.
Как заставить список сфокусироваться на вводе?
Спасибо.
Записан
bigirbis
Гость
Фокус ввода
«
Ответ #1 :
Ноябрь 20, 2006, 20:41 »
Думаю, что ты путаешь понятия focus и selection
Записан
Vladimir2006
Гость
Фокус ввода
«
Ответ #2 :
Ноябрь 20, 2006, 20:54 »
дело в том, что при создании виджета, на котором расположен список, я хочу иметь возможность перемещаться по итемам списка при помощи курсорных кнопок, но это можно сделать только если список будет иметь фокус ввода
если нажать Tab, то список получает фокус и все ок
я нашел функцию grabKeyboard(), заюзал ее пока для списка, но это немного не то, что я хотел, теперь в списке пожно перемещаться по итемам, даже если список не имеет фокуса и весь ввод с клавы идет на список
а хотелось бы с фокусом разобраться
Записан
bigirbis
Гость
Фокус ввода
«
Ответ #3 :
Ноябрь 20, 2006, 21:46 »
Код:
listWidget->setFocus( Qt::TabFocusReason );
...по идее должно хватить.
Возможно перед этим нужно будет вызвать
void setCurrentItem ( QListWidgetItem * item )
Записан
Vladimir2006
Гость
Фокус ввода
«
Ответ #4 :
Ноябрь 20, 2006, 21:48 »
перехватил эвент QShowEvent в родительском виджете и в этом обработчике вызвал setFocus() для нужного дочернего виджета
работает
Записан
bigirbis
Гость
Фокус ввода
«
Ответ #5 :
Ноябрь 20, 2006, 22:10 »
Изврат!
Просто фокус на QListWidget нужно ставить после создания последнего дочернего элемента.
Записан
burkav84
Гость
Фокус ввода
«
Ответ #6 :
Ноябрь 20, 2006, 23:00 »
Можно еще так: в кострукторе своего widgeta (родительский класс для QListWidget и QPushButtons):
setFocusProxy(указатель на QListWidget) - после этого при получении фокуса твой widget будет устанавливать фокус на QListWidget.
Записан
Vladimir2006
Гость
Фокус ввода
«
Ответ #7 :
Ноябрь 21, 2006, 10:53 »
Цитата: "bigirbis"
Изврат!
Просто фокус на QListWidget нужно ставить после создания последнего дочернего элемента.
пробовал, не работает
Записан
bigirbis
Гость
Фокус ввода
«
Ответ #8 :
Ноябрь 21, 2006, 19:53 »
Помимо фокуса выстави еще и selection
Записан
Vladimir2006
Гость
Фокус ввода
«
Ответ #9 :
Ноябрь 21, 2006, 20:06 »
с селекшином проблем нет, он работает, подсвечивается нужный итем
через setFocusProxy кстати тоже не работает из конструктора
казалось бы простая вещь - установить фокус ввода, а какая проблема
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...