crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> проблема при удалении изображения из 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;">

Теперь идём дальше. Если удалить изображение из окна редактирования, то курсор остается на том месте, где была граница изображения. Как бы область редактора, где до этого было изображение - заблокировано.

При перезапуске редактора проблема исчезает, но это ведь не решение.

Прошу совета.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Rio9
  опции профиля:
сообщение 2.5.2010, 9:19
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 29.4.2010
Пользователь №: 1675

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




Репутация:   0  


kibsoft, я только начал осваиваться в Qt, не совсем понимаю как происходит переопределение функций.
1) Что писать в заголовочном файле?
2) SendTextEdit в твоем примере - это имя класса приложения или самого поля ввода?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kibsoft
  опции профиля:
сообщение 2.5.2010, 10:29
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

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




Репутация:   2  


Цитата(Rio9 @ 2.5.2010, 10:19) *
kibsoft, я только начал осваиваться в Qt, не совсем понимаю как происходит переопределение функций.
1) Что писать в заголовочном файле?
2) SendTextEdit в твоем примере - это имя класса приложения или самого поля ввода?

.h
class MyTextEdit:public QTextEdit
{
     Q_OBJECT
public:
    MyTextEdit(QWidget *parent=0):QTextEdit(parent);
    void keyPressEvent(QKeyEvent *e)
    {  
        if (e->key()==Qt::Key_Backspace && textCursor().charFormat().toImageFormat().isValid()) {
        QTextCursor tempCursor=textCursor();
        tempCursor.deletePreviousChar();
        setTextCursor(tempCursor);
    }
    else
        QTextEdit::keyPressEvent(e);
    }
}

Можешь keyPressEvent вынести в файл .cpp, тогда будет как в моем предыдущем посте, т.е. MyTextEdit::keyPressEvent(QKeyEvent *e).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 28.12.2024, 14:48