проблема при удалении изображения из QTextEdit |
Здравствуйте, гость ( Вход | Регистрация )
проблема при удалении изображения из QTextEdit |
Rio9 |
29.4.2010, 14:46
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 29.4.2010 Пользователь №: 1675 Спасибо сказали: 0 раз(а) Репутация: 0 |
Столкнулся с такой проблемой. Имеется QTextEdit, в него програмно добавляется изображение:
lastcursor.insertImage(img,QTextFrameFormat::FloatLeft); в итоге в html сохраняется как положено: <img src="any.jpg" style="float: left;"> Теперь идём дальше. Если удалить изображение из окна редактирования, то курсор остается на том месте, где была граница изображения. Как бы область редактора, где до этого было изображение - заблокировано. При перезапуске редактора проблема исчезает, но это ведь не решение. Прошу совета. |
|
|
kibsoft |
29.4.2010, 15:28
Сообщение
#2
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
А на других компах проверяли? Может тока у вас глюк.
|
|
|
Rio9 |
29.4.2010, 15:30
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 29.4.2010 Пользователь №: 1675 Спасибо сказали: 0 раз(а) Репутация: 0 |
не проверял, но не дуаю что у меня глюк. Вот почему: если не задавать обтекание, то всё возвращается на место как положено. Проблема появляется только с указанным обтеканием.
Но я обязательно проверю завтра на других компьютерах |
|
|
kibsoft |
29.4.2010, 15:39
Сообщение
#4
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
не проверял, но не дуаю что у меня глюк. Вот почему: если не задавать обтекание, то всё возвращается на место как положено. Проблема появляется только с указанным обтеканием. Но я обязательно проверю завтра на других компьютерах В крайнем случае можно попробовать deletePreviousChar() из QTextCursor, чтобы курсор вернулся. Реализовать можно например в keyPressEvent. |
|
|
Rio9 |
30.4.2010, 10:56
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 29.4.2010 Пользователь №: 1675 Спасибо сказали: 0 раз(а) Репутация: 0 |
В крайнем случае можно попробовать deletePreviousChar() из QTextCursor, чтобы курсор вернулся. Реализовать можно например в keyPressEvent. На других компьютерах проблема так же остается проблемой... А что даст deletePreviousChar(), если в html ничего лишнего нет? ни параграфа, ни отступа, ничего... |
|
|
kibsoft |
30.4.2010, 22:25
Сообщение
#6
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
В крайнем случае можно попробовать deletePreviousChar() из QTextCursor, чтобы курсор вернулся. Реализовать можно например в keyPressEvent. На других компьютерах проблема так же остается проблемой... А что даст deletePreviousChar(), если в html ничего лишнего нет? ни параграфа, ни отступа, ничего... Просто у меня встречалась такая проблема, что при удалении картинки в TextEdit программа рушилась полностью, deletePreviousChar помог (хотя это не совсем правильно, но хоть какой-то выход). Поэтому просто в keyPressEvent смотри предыдущий символ картинка или нет, если да, то выполняй deletePreviousChar(), если нет, то продолжай обрабатывать стандартными действиями.
Что-то типа такого.. |
|
|
Rio9 |
2.5.2010, 9:19
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 29.4.2010 Пользователь №: 1675 Спасибо сказали: 0 раз(а) Репутация: 0 |
kibsoft, я только начал осваиваться в Qt, не совсем понимаю как происходит переопределение функций.
1) Что писать в заголовочном файле? 2) SendTextEdit в твоем примере - это имя класса приложения или самого поля ввода? |
|
|
kibsoft |
2.5.2010, 10:29
Сообщение
#8
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
kibsoft, я только начал осваиваться в Qt, не совсем понимаю как происходит переопределение функций. 1) Что писать в заголовочном файле? 2) SendTextEdit в твоем примере - это имя класса приложения или самого поля ввода? .h
Можешь keyPressEvent вынести в файл .cpp, тогда будет как в моем предыдущем посте, т.е. MyTextEdit::keyPressEvent(QKeyEvent *e). |
|
|
Rio9 |
2.5.2010, 10:52
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 29.4.2010 Пользователь №: 1675 Спасибо сказали: 0 раз(а) Репутация: 0 |
kibsoft, Извини, но я снова не понимаю...
Вот смотри, я в QtCreator'е создал проект, есть заголовочный файл editor.h с содержимым (это не тот проект, в котором проблема, я просто дома создал новый только для нахождения решения этого косяка)
, файл реализации editor.cpp:
Теперь что мне и куда писать? Если не тяжело, напиши подробно что и куда писать... |
|
|
Текстовая версия | Сейчас: 27.12.2024, 23:28 |