crossplatform.ru

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

> QTextEdit перевод вводимых символов в верхний регистр
FantasyOr
  опции профиля:
сообщение 17.12.2010, 19:38
Сообщение #1


Студент
*

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

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




Репутация:   0  


Добрый ...
это просто ужас, нигде в интернетах нет решения этой проблемы, казалось бы довольно тривиальный велосипед... анн нет, либо все молчат зная секрет, либо никому не надо? не верю.

есть 2 варианта, и он вроде бы даже работает, но наполовину:
1)
- ловим у QTextEdit textChanged()
- сохраняем положение курсора
- читаем весь текст
- toUpper
- присваиваем поднятый текст обратно QTextEdit
- восстанавливаем курсор
но тут 1 минус:
- очень много ненужных действий

2)
наследуемся от QTextEdit и переопределить keyPressEvent, но в QKeyEvent невозможно изменить модификатор(изменить на шифт нажат) вот тут и тупик.

кто что подскажет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
MoPDoBoPoT
  опции профиля:
сообщение 18.12.2010, 22:18
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

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




Репутация:   9  


Цитата(FantasyOr @ 17.12.2010, 19:38) *
2)
наследуемся от QTextEdit и переопределить keyPressEvent, но в QKeyEvent невозможно изменить модификатор(изменить на шифт нажат) вот тут и тупик.

Зато можно подменить своим событием. Но с модификаторами лучше не играться, а то можно на трудноотлавливаемый баг нарваться.
Кстати, если это нужно в качестве единичного использования, то можно воспользоваться фильтром событий (для этого читать про QObject::installEventFilter() QApplication::sendEvent())
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 22.12.2024, 23:13