![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
FantasyOr |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 75 Регистрация: 13.8.2010 Пользователь №: 1956 Спасибо сказали: 4 раз(а) Репутация: ![]() ![]() ![]() |
Добрый ...
это просто ужас, нигде в интернетах нет решения этой проблемы, казалось бы довольно тривиальный велосипед... анн нет, либо все молчат зная секрет, либо никому не надо? не верю. есть 2 варианта, и он вроде бы даже работает, но наполовину: 1) - ловим у QTextEdit textChanged() - сохраняем положение курсора - читаем весь текст - toUpper - присваиваем поднятый текст обратно QTextEdit - восстанавливаем курсор но тут 1 минус: - очень много ненужных действий 2) наследуемся от QTextEdit и переопределить keyPressEvent, но в QKeyEvent невозможно изменить модификатор(изменить на шифт нажат) вот тут и тупик. кто что подскажет? |
|
|
maint |
![]()
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
FantasyOr |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 75 Регистрация: 13.8.2010 Пользователь №: 1956 Спасибо сказали: 4 раз(а) Репутация: ![]() ![]() ![]() |
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 "> - Все следующие алфавитный символы переводятся в верхний регистр." |
|
|
MoPDoBoPoT |
![]()
Сообщение
#4
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
2) наследуемся от QTextEdit и переопределить keyPressEvent, но в QKeyEvent невозможно изменить модификатор(изменить на шифт нажат) вот тут и тупик. Зато можно подменить своим событием. Но с модификаторами лучше не играться, а то можно на трудноотлавливаемый баг нарваться. Кстати, если это нужно в качестве единичного использования, то можно воспользоваться фильтром событий (для этого читать про QObject::installEventFilter() QApplication::sendEvent()) |
|
|
FantasyOr |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 75 Регистрация: 13.8.2010 Пользователь №: 1956 Спасибо сказали: 4 раз(а) Репутация: ![]() ![]() ![]() |
справился с этой закавыкой так:
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 18.6.2025, 14:33 |