Russian Qt Forum
Ноябрь 24, 2024, 15:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать обработку клавиатуры в TreeWidget ?  (Прочитано 5173 раз)
Skala
Гость
« : Май 12, 2007, 09:07 »

Здравствуйте!
Как можно сделать обработку клавиатуры в TreeWidget ? Конкретно - мне нужно сделать удаление из веток. Допустим, нажали Delete. Как задать свою обработку нажатия?
Записан
pakulo
Гость
« Ответ #1 : Май 12, 2007, 11:45 »

Сделать свой класс от QTreeWidget и переопределить событие keyPressEvent?
Записан
Skala
Гость
« Ответ #2 : Май 12, 2007, 12:21 »

Хотелось бы без переопределений, ибо в designer еще не все прорисовано/спроектировано.
Хотя, на последнем этапе можно...
Записан
pakulo
Гость
« Ответ #3 : Май 12, 2007, 13:30 »

Мне самому интересно, можно ли обрабатывать события клавитуры и мышки не переопределяя класс, например как-то получить какая кнопка нажата и передать владельцу данные на обработку.
Записан
vregess
Гость
« Ответ #4 : Май 12, 2007, 14:47 »

Цитата: "pakulo"
Мне самому интересно, можно ли обрабатывать события клавитуры и мышки не переопределяя класс, например как-то получить какая кнопка нажата и передать владельцу данные на обработку.


Можно сделать installEventFilter

Цитировать

void QObject::installEventFilter ( QObject * filterObj )
bool QObject::eventFilter ( QObject * watched, QEvent * event )  [virtual]


Пусть есть главное окно Mw и QTreeWidget - tree;
Тогда:
Код:

tree->installEventFilter(Mw);
...
Mw::eventFilter ( QObject * watched, QEvent * event )
{
....
}

Вроде так должно получиться, что вы требуете
Записан
pakulo
Гость
« Ответ #5 : Май 12, 2007, 17:30 »

о, спасибо, а я кокраз эту тему упустил...
Записан
Tonal
Гость
« Ответ #6 : Май 13, 2007, 11:18 »

Цитата: "Skala"
Хотелось бы без переопределений, ибо в designer еще не все прорисовано/спроектировано.
Хотя, на последнем этапе можно...

В дизайнере есть очень удобная функция: "Promote to Custom Widget" доступна для любого виджета из контекстного меню.
Она как раз для подобных случаев.
Записан
pakulo
Гость
« Ответ #7 : Май 13, 2007, 19:29 »

а как можно установить фильтры для всех дочерных обьектов? Циклом перебрать все виджеты?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.