crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 4:50