Название: QTextEdit и html Отправлено: Hatebreeder от Март 08, 2010, 15:51 Достоточно строчки:
ui->textEdit->acceptRichText(); ...что бы работать с html? Как с помощью Rich text сделать цветным текст? Как потом все это сохранить в в файл что бы html остался?) Малова-то в книгах информации по QText Edit. Подскажите пожалуйста. Название: Re: QTextEdit и html Отправлено: SABROG от Март 08, 2010, 17:06 Достоточно строчки: ui->textEdit->acceptRichText(); ...что бы работать с html? Этот метод возвращает true (по умолчанию) или false, если пользователю разрешается вставлять (из буфера обмена) или переносить (drag & drop, из браузера например) Rich Text. То есть с сохранением цветов, жирности, шрифта и прочее. Иначе вставляется как обычный текст (как в блокнот). Вообще с этим QTextEdit дело ясное, что дело тёмное. Там такая замысловатая структура, что сам чёрт ногу сломит, а про обилие классов, которые всем этим управляют я вообще молчу. Вот например в чем разница, если я поставлю форматирование через тег "<span style="color: 'green'">Line 1</span>" или через такой код?: Код
Вероятно в том, что во втором случае "html" код уже обработан и форматирование задано в "понятном" для Qt виде. Если мы захотим изменить цвет слова, то что большинство людей сделает? Добавит заново измененный "html" код или будет работать с классом QTextCharFormat? Если первый вариант влияет на состояние второго, то скорее всего, второй вариант никак не влияет на установленный html код. На экране видим белое по черному, а в html черное по белому. Тут появляется класс QTextDocumentWriter. Ставим ему формат в котором будем сохранять writer.setFormat("HTML"). Загружать в QTextEdit обратно нужно будет уже через QFile. Всё бы ничего, но вот HTML не умеет хранить картинки или пользовательские текстовые объекты. Казалось бы решением мог бы быть "ODF", но пока в него можно только сохранить, а вот читать из него Qt еще не умеет. Жалко, что у QTextDocument нет поддержки QDataStream, жизнь бы упростилась. Название: Re: QTextEdit и html Отправлено: Hatebreeder от Март 10, 2010, 13:34 Спасибо большое.
Вроде все получилось. Вот только как сделать что бы этот код работал не только один раз, и не только с первой строчкой? И выравнивание в html идет по всему тексту а не по выделенному, как в плаин текст. Как это можно поправить? |