Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
void* |
5.6.2008, 11:13
Сообщение
#1
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
добрый день! есть вопрос:
как сделать чтобы если в QTextEdit'е ввели символ { или : и нажали Enter, то курсор перемещается не в начало следующей строки, а на следующую строку и под этим символом? заранее большое спасибо! Сообщение отредактировал void* - 5.6.2008, 11:14 |
|
|
|
|
ViGOur |
5.6.2008, 12:32
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Примерно так:
Тебе осталось только получить расстояние до "{" или ":" и заменить --> на него... |
|
|
|
|
void* |
5.6.2008, 12:50
Сообщение
#3
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
1)QTextEdit::toPlainText() по-моему получает весь текст из области, можно ли как-то получать только одну данную линию текста?
2)в моем случае скорее надо вместо QString::right() использовать QString::left(), т.к. когда Ентер нажат, то символ уже введен... 3)может проще сделать через keyPressEvent? вообще, пример того, что я хочу сделать - есть в любой IDE, но я чего-то путаюсь с передвиганием курсора |
|
|
|
|
ViGOur |
5.6.2008, 13:53
Сообщение
#4
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Критика конечно же обоснована, но я это набросал как пример для наглядности того, как сделать то, что ты хочешь. Потому оптимизацией занимайся как-нибудь сам...
Получить позицию можно так: Цитата(void* @ 5.6.2008, 13:50) Link но я чего-то путаюсь с передвиганием курсора Что именно не понятно?
Сообщение отредактировал ViGOur - 5.6.2008, 13:52 |
|
|
|
|
void* |
5.6.2008, 14:03
Сообщение
#5
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
ладно, чуть позже еще пошаманю над этим
|
|
|
|
|
void* |
6.6.2008, 14:27
Сообщение
#6
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
ViGOur, и все-таки можно ли как-то получить только последнюю строку или, что еще лучше, символ, а не весь текст, как здесь у тебя:
? потому что, я думаю, этот способ будет очень неэффективен для больших объемов текста, расположенных в TextEdit'e параллельно роюсь в ассистенте... З.Ы. насчет второго пункта я был неправ, неправильно понял работу этой функции Сообщение отредактировал void* - 6.6.2008, 17:17 |
|
|
|
|
void* |
6.6.2008, 17:43
Сообщение
#7
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
уррряя! получилось
выкладываю код, может кому еще понадобится:
Сообщение отредактировал void* - 6.6.2008, 17:43 |
|
|
|
|
void* |
6.6.2008, 19:12
Сообщение
#8
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
немного усовершенствовал:
(n - целочисленная переменная, хранящаяся в классе и инициализирущаяся в конструкторе для начала нулем) Сообщение отредактировал void* - 6.6.2008, 19:14 |
|
|
|
|
Red Devil |
6.6.2008, 22:59
Сообщение
#9
|
![]() Студент ![]() Группа: Участник Сообщений: 68 Регистрация: 6.6.2008 Из: Saint-Petersburg Пользователь №: 194 Спасибо сказали: 1 раз(а) Репутация: 3
|
Для того чтобы получить текущию строку :
А для добавления новой строки в место после курсора, лучше использовать QTextCursor::insertBlock(). Сообщение отредактировал Red Devil - 6.6.2008, 23:06 |
|
|
|
|
void* |
7.6.2008, 12:48
Сообщение
#10
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
Red Devil, большое спасибо, то что нужно
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 5:20 |