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 невозможно изменить модификатор(изменить на шифт нажат) вот тут и тупик.

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


Студент
*

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

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




Репутация:   0  


maint Вы намекаете на:
textEdit1.setInputMethodHints(Qt::ImhUppercaseOnly);

уже пробовал, не работает.
я может и не прав, но причем тут хинт +
"Qt::ImhUppercaseOnly 0x40000 Only upper case letter input is allowed." вольный перевод: "допускается ввод только букв в верхнем регистре", а мне нужно, автоматически поднимать регистр, на подобии:
LineEdit1->setInputMask(">");

http://qtdocs.narod.ru/4.1.0/doc/html/qlineedit.html
"> - Все следующие алфавитный символы переводятся в верхний регистр."

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




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