crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> выравнивиние изображения в QTextEdit, выравнивиние изображения
pussbb
  опции профиля:
сообщение 26.1.2010, 12:03
Сообщение #1


Студент
*

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

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




Репутация:   0  


Кто может подсказать как сделать следующее:
вставить картинку(это я могу) скажем QTextEdit и добавить стиль (css) опцию float=.... С возможностью его изменять.


надо сделать обтекание текста вокруг изображения при вставке
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 26.1.2010, 14:13
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


setHtml(), а в коде уже используй css. Если нужно менять стиль, то предыдущий блок полностью затираешь и вставляешь новый - измененный.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
pussbb
  опции профиля:
сообщение 26.1.2010, 20:02
Сообщение #3


Студент
*

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

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




Репутация:   0  


а как правильно удалить предыдущую. я использовал
lastcursor.deletePreviousChar();
но за вторым разом изменением добавляет пустоту а при дальнейшем использовании вовсе выбивает приложение
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 26.1.2010, 22:29
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Либо textEdit.clear(), либо можно попробовать так:

QTextCursor cursor(textEdit->document());
cursor.currentList()->remove(cursor.block());


Не знаю будет работать или нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
pussbb
  опции профиля:
сообщение 27.1.2010, 13:17
Сообщение #5


Студент
*

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

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




Репутация:   0  


textEdit.clear() очистит мне весь документ
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 27.1.2010, 14:14
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(pussbb @ 27.1.2010, 13:17) *
textEdit.clear() очистит мне весь документ

Я не нашел способа удаления QTextBlock (paragraph), добавлять не вопрос, а удалять хрен. Судя по документации для установки нового стиля нужно удалять блок. Надо экспериментировать, может быть обычная очистка текста в конкретном блоке тоже сработает. Всё равно как-то не правильно, наплодить блоков можно, а удалять только через clear() - бред. Хотя судя по исходникам Qt пустой блок (без текста) должен удаляться автоматически.

Сообщение отредактировал SABROG - 27.1.2010, 14:15
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
pussbb
  опции профиля:
сообщение 30.1.2010, 18:12
Сообщение #7


Студент
*

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

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




Репутация:   0  


оказываеться вставить картинку можно и так
void QTextCursor::insertImage ( const QTextImageFormat & format, QTextFrameFormat::Position alignment )
//соответственно
lastcursor.insertImage(image,QTextFrameFormat::FloatLeft);

и все так как надо вставляет .
я уже не знаю с чем експерементировать
А параграф очистить можна так
ui->editor->document()->findBlock(lastcursor.blockNumber()).text().clear();


а потом вставить . но опять таки не всегда правильно работает зараза

получается когда изображение выделить то все работает нормально

и пусть меня заплюют за эту реализацию но работает как надо
   QString name=image.name();
        QString data=ui->editor->document()->toHtml();
       int i = data.indexOf(QString("<img src=\""+name+"\""));
       qDebug()<<i;qDebug()<< data.indexOf("/>",i);
        if (i > 0)
            data.remove(i, data.indexOf("/>",i) + 2);
        ui->editor->document()->setHtml(data);
        lastcursor.insertImage(image,QTextFrameFormat::FloatRight);

естественно надо кое что подправить но зато все работает
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 20.9.2019, 0:17