crossplatform.ru

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


  Ответ в выравнивиние изображения в QTextEdit
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
pussbb Дата 30.1.2010, 18:12
  оказываеться вставить картинку можно и так
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);

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

Я не нашел способа удаления QTextBlock (paragraph), добавлять не вопрос, а удалять хрен. Судя по документации для установки нового стиля нужно удалять блок. Надо экспериментировать, может быть обычная очистка текста в конкретном блоке тоже сработает. Всё равно как-то не правильно, наплодить блоков можно, а удалять только через clear() - бред. Хотя судя по исходникам Qt пустой блок (без текста) должен удаляться автоматически.
pussbb Дата 27.1.2010, 13:17
  textEdit.clear() очистит мне весь документ
SABROG Дата 26.1.2010, 22:29
  Либо textEdit.clear(), либо можно попробовать так:

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


Не знаю будет работать или нет.
pussbb Дата 26.1.2010, 20:02
  а как правильно удалить предыдущую. я использовал
lastcursor.deletePreviousChar();
но за вторым разом изменением добавляет пустоту а при дальнейшем использовании вовсе выбивает приложение
SABROG Дата 26.1.2010, 14:13
  setHtml(), а в коде уже используй css. Если нужно менять стиль, то предыдущий блок полностью затираешь и вставляешь новый - измененный.
pussbb Дата 26.1.2010, 12:03
  Кто может подсказать как сделать следующее:
вставить картинку(это я могу) скажем QTextEdit и добавить стиль (css) опцию float=.... С возможностью его изменять.


надо сделать обтекание текста вокруг изображения при вставке
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 1.10.2022, 2:16