crossplatform.ru

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

Dovgon
  опции профиля:
сообщение 9.12.2011, 16:51
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 92
Регистрация: 5.1.2011
Пользователь №: 2325

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




Репутация:   0  


Если сделать так то текст не выравнивается по центру, в чем может быть дело?
QPainter painter(pPrinter);
QTextDocument textDocument;

....
stringPage+="<H1 align=\"center\">текст</H1>";
....

textDocument.setHtml(stringPage);
textDocument.drawContents(&painter);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BlueIceScream
  опции профиля:
сообщение 10.12.2011, 13:11
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 56
Регистрация: 21.11.2011
Из: Республика Дагестан
Пользователь №: 3016

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




Репутация:   3  


Код работает отлично. Парсер воспринимает его так как надо.
Попробуйте этот вариант


    QTextDocument *td = new  QTextDocument();
    td->setHtml(QString::fromLocal8Bit("<H1 align=\"center\">текст</H1>"));



Проверен только что. Работает.

Цитата
Потому, что данное экранирование ковычек заставляет обработчик HTML кода их не воспринимать совсем (как буд-то их нет).


С чего вы взяли что они вообще доходят в таком виде до парсера Html?

stringPage является объектам типа QString(как я понял). Смотрим перегруженный оператор operator+= :

QString & operator+= ( const QString & other )
QString & operator+= ( const QLatin1String & str )
QString & operator+= ( const QByteArray & ba )
QString & operator+= ( const char * str )
QString & operator+= ( const QStringRef & str )
QString & operator+= ( char ch )
QString & operator+= ( QChar ch )

Получаем что для данных <H1 align=\"center\">текст</H1> вызывается неявно конструктор, а затем выполняется operator+=
в таком случае исходных символов \ после неявного вызова конструктора, ссылка на объект типа QString, которую он вернет, вообще не будет содержать. Однако неизвестно включены ли QT_NO_CAST_FROM_ASCII и какая кодировка в редакторе. Поэтому я призываю использовать конструктор явно. Как в примере выше который я показала. Этот вариант работает при правильной остальной части stringPage.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 30.6.2025, 8:37