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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QLineEdit игнорирование нажатие клавиши tab  (Прочитано 3659 раз)
shender
Гость
« : Март 11, 2010, 14:37 »

День добрый. Такая проблема,
пишется что то типа консоли,
т.е. есть QLineEdit в который вводится команда, по двойному нажатию ТАБа должна производиться подсветка команд, вообщем как в линуксе, по Enter'у выполнение команды, а т.к. это всё на Qwidget то просто проииходит смена фокуса
с ентером все как бы понятно, там есть соотвсет. сигнал, а вот с табалм не очень, есть сигнал который ловит нажатие и ТАБа и Ентера. Помогите плз.
Записан
kos
Гость
« Ответ #1 : Март 11, 2010, 14:52 »

На сколько я помню, такого сигнала нет.
Тебе нужно просто переопределить событие event.
Должно получиться чтото подобное:

Код
C++ (Qt)
bool LineEdit::event(QEvent *event) {
   if (event->type() == QEvent::KeyPress) {
       QKeyEvent *keyEvent = static_cast<QKeyEvent *> event;
       if (keyEvent->key() == Qt::Key_Tab) {
           //bla bla
           return true;
       }
   }
   return QLineEdit::event(event);
}
 
« Последнее редактирование: Март 11, 2010, 15:50 от Пантер » Записан
alexman
Гость
« Ответ #2 : Март 11, 2010, 15:49 »

void QWidget::keyPressEvent ( QKeyEvent * event ) 
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Март 11, 2010, 15:51 »

Можно через eventFilter.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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