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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Класс QTextEdit и обработка события клавиатуры  (Прочитано 6835 раз)
Yura
Гость
« : Декабрь 08, 2008, 19:08 »

в своей программе использую без изменения класс из примера QTDIR\4.4.1\examples\tools\customcompleter\textedit.h, унаследованный от QTextEdit

пишу основной класс (внутри имеется переменная типа TextEdit), в котором используется обработчик события клавиатуры
Код:
void mainwidget::keyPressEvent(QKeyEvent *event)
{
switch (event->key())
{
case Qt::Key_Return :
{
sendRequest();
}
break;

default :
{
QWidget::keyPressEvent(event);
}
}
}

как при нажатии на Shift+Enter (внутри TextEdit) обработать событие.
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #1 : Декабрь 08, 2008, 20:25 »

используй в обработчике нажатия Enter`a
Код
C++ (Qt)
if(event->modifiers()==Qt::ShiftModifier)
{
// делаем что-то...
}
Записан
Yura
Гость
« Ответ #2 : Декабрь 08, 2008, 21:03 »

У класса  TextEdit  есть свой обработчик события

Код:
void TextEdit::keyPressEvent(QKeyEvent *e)
{
    if (c && c->popup()->isVisible()) {
        // The following keys are forwarded by the completer to the widget
       switch (e->key()) {
       case Qt::Key_Enter:
       case Qt::Key_Return:
       case Qt::Key_Escape:
       case Qt::Key_Tab:
       case Qt::Key_Backtab:
            e->ignore();
            return; // let the completer do default behavior
       default:
   //QTextEdit::keyPressEvent(e);
           break;
       }
    }

...

вот думаю как сделать, чтобы при нажатии Shift+Enter обрабатывалось событиие void mainwidget::keyPressEvent(QKeyEvent *event), а не void TextEdit::keyPressEvent(QKeyEvent *e)
подскажите плиз.
или чтобы сначало обработалось void TextEdit::keyPressEvent(QKeyEvent *e) , а затем void mainwidget::keyPressEvent(QKeyEvent *event)
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



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

см. installEventFilter, eventFilter
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Yura
Гость
« Ответ #4 : Декабрь 08, 2008, 22:35 »

спасибо, это как раз, что нужно. Буду разбираться
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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