crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Обработка события QEvent::Drop
XXL
  опции профиля:
сообщение 26.7.2009, 23:21
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 30
Регистрация: 26.4.2009
Пользователь №: 708

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет!)
Подскажите, пожалуйста, как "разморозить" текстовый курсор? Дело в том, что у меня есть класс для работы с текстом public от QTextEdit, в котором viewport()->installEventFilter(this); я перехватываю Event::Drop и нужным мне образом обрабатываю это событие:
bool CTextEdit::eventFilter(QObject *pObject, QEvent *pEvent)
{
    ...
    QCursor widgCursor = ((QWidget*)pObject)->cursor();
    QTextCursor txtCursor = cursorForPosition(((QWidget*)pObject)->mapFromGlobal(widgCursor.pos()));
    ...
    else if (pEvent->type() == QEvent::Drop)
    {
        QTextCursor tCursor = textCursor();
        txtCursor.insertFragment(tCursor.selection());
        tCursor.removeSelectedText();
        setTextCursor(txtCursor);

                emit TextChanged(...);

        return true;
    }
    ...
    else
        return QObject::eventFilter(pObject, pEvent);
}


после чего текстовый курсор перестает мигать и замирает на текущей позиции, причем даже если выбрать другую позицию в документе, текст будет впечатываться с выбранной позиции, однако визуально немигающий курсор своего положения не изменит. Как можно вернуть его в нормальное активное состояние?
Большое спасибо)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 27.7.2009, 9:28
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


может
void QTextCursor::setVisualNavigation ( bool b )
???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
XXL
  опции профиля:
сообщение 28.7.2009, 20:45
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 30
Регистрация: 26.4.2009
Пользователь №: 708

Спасибо сказали: 0 раз(а)




Репутация:   0  


Нет, к сожалению(Так тоже не работает. Курсор по-прежнему стоит. Если бы знать, как стандартный обработчик это делает... Может там таймер какой-то системный...Вообще без понятия, как это сделать...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.7.2009, 8:05
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(XXL @ 29.7.2009, 0:45) *
Если бы знать, как стандартный обработчик это делает
ну исходники-то есть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.12.2024, 7:41