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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как определить нажатие на клавишу? Допустим для QListWidget.  (Прочитано 5489 раз)
Пытон
Гость
« : Декабрь 04, 2011, 12:02 »

На клавиатуре нажимается клавиша del, в ответ удаляем текущий элемент списка. Как узнать что del была нажата? Какой сигнал обрабатывать?
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #1 : Декабрь 04, 2011, 12:48 »

На клавиатуре нажимается клавиша del, в ответ удаляем текущий элемент списка. Как узнать что del была нажата? Какой сигнал обрабатывать?
virtual void    keyPressEvent ( QKeyEvent * event )
virtual void    keyReleaseEvent ( QKeyEvent * event )
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Пытон
Гость
« Ответ #2 : Декабрь 04, 2011, 16:59 »

Ещё бы понять как этим пользоваться. Это ведь не сигнал. Как я должен поймать это событие? Как связать его с процедурой-обработчиком?

Желателен пример на питоне, но не обязательно на нём.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Декабрь 04, 2011, 17:11 »

почитай немножко документацию. это просто protected-метод.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Пытон
Гость
« Ответ #4 : Декабрь 05, 2011, 04:20 »

Ежели кому не в тягость, пример кода, пожалуйста. Желательно на питоне.
Записан
Пытон
Гость
« Ответ #5 : Декабрь 05, 2011, 16:48 »

И-эх... У меня есть учебник по PyQT, в нём немного описаны эти события, но для ООП. И что-то я в них не въезжаю. Примерчик, плиз?  Плачущий
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Декабрь 05, 2011, 18:05 »

так трудно погуглить? вторая ссылка выдаёт нужный результат:
Код
Python
def keyPressEvent(self, e):
   if e.key() == QtCore.Qt.Key_Escape:
       self.close()
Цитировать
If we click the escape button, the application terminates.
естественно, этот метод должен быть определён в классе.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Пытон
Гость
« Ответ #7 : Декабрь 06, 2011, 10:24 »

Я пока не использую классы. Пока. В будущем, конечно же, буду.
В бесклассовом обществе программировании можно как-то поймать нажатие на клавишу на виджете?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Декабрь 06, 2011, 10:37 »

нельзя. Qt построена на классах. без них можно только показать виджеты с минимумом предварительной их настройки.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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