Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: shender от Март 11, 2010, 14:37



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


Название: Re: QLineEdit игнорирование нажатие клавиши tab
Отправлено: kos от Март 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);
}
 


Название: Re: QLineEdit игнорирование нажатие клавиши tab
Отправлено: alexman от Март 11, 2010, 15:49
void QWidget::keyPressEvent ( QKeyEvent * event ) 


Название: Re: QLineEdit игнорирование нажатие клавиши tab
Отправлено: Пантер от Март 11, 2010, 15:51
Можно через eventFilter.