Сброс выделения текста в редактируемом QComboBox |
Здравствуйте, гость ( Вход | Регистрация )
Сброс выделения текста в редактируемом QComboBox |
XXL |
22.12.2009, 0:29
Сообщение
#1
|
Студент Группа: Участник Сообщений: 30 Регистрация: 26.4.2009 Пользователь №: 708 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем доброй ночи!
Хочу задать маленький вопрос. Есть редактируемый QComboBox. Не могу понять, почему в его QLineEdit производится выделение текста. А именно отлавливаю сигнал изменения текста editTextChanged(const QString&). Получаю текущую позицию курсора, устанавливаю новый текст в текущую ячейку, а потом снова возвращаю курсор на полученную позицию:
После этого в редактируемой строке выделяется кусок слова от последней позиции до pos...Также была испробована функция void QLineEdit::cursorBackward ( bool mark, int steps = 1 ) с mark = false и количеством шагов, равным количеству символов от конца слова до текущей позиции. Результат аналогичный...Почему такое может быть? А хотелось бы параллельно с редактированием слова редактировать ячейку без выделения текста... Сообщение отредактировал XXL - 22.12.2009, 0:30 |
|
|
igor_bogomolov |
23.12.2009, 9:57
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Можно ловить сигнал
и в обработчике делать
|
|
|
XXL |
23.12.2009, 11:07
Сообщение
#3
|
Студент Группа: Участник Сообщений: 30 Регистрация: 26.4.2009 Пользователь №: 708 Спасибо сказали: 0 раз(а) Репутация: 0 |
Можно ловить сигнал и в обработчике делать
Этот сигнал в данном случае не отлавливается, но обнаружилось когда происходит выделение текста. Отлавливается сигнал
Предположим, есть слово - конечная позиция курсора 12. Перемещаем курсор на начало - в нулевую позицию (old-12, new-0) и вводим символ. pos = 1. После setItemText old = 0, new = 13. Если не вызывать функцию setCursorPosition(pos), больше в обработчик сигнала cursorPositionChanged не входим. Но если вызвать setCursorPosition(pos), то попадаем в этот обработчик еще 3 раза! Первый - соответственно дает old-13 new-1, а затем происходит что-то мне непонятное: old-1, new-13 и old-13, new-1. Это и дает выделение текста. Но почему? |
|
|
Текстовая версия | Сейчас: 10.1.2025, 2:51 |