Russian Qt Forum
Ноябрь 22, 2024, 17:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО]qwebview и непечатаемые символы  (Прочитано 3063 раз)
[Matrix]
Гость
« : Май 10, 2012, 00:15 »

Есть html, в котором есть символы типа ­ \xAD, которые отображаются как вертикальная жирная | в QWebView, например html-файл с содержимым

Код:
aaa­bbb

если открыть его в demos\browser\ это видно. В обычных браузерах все нормально, этот символ не отображается. Собственно вопрос - как их скрыть?
Пересобрать QtWebKit4.dll отфильтровав эти символы или есть возможность решить это другим способом?
« Последнее редактирование: Май 11, 2012, 22:34 от [Matrix] » Записан
[Matrix]
Гость
« Ответ #1 : Май 11, 2012, 22:22 »

Собственно не нравилось, что рисовались прямоугольники вместо так называемых zero-width символов, что собственно похоже на ошибку, на то они и zero-width и создавались не для отображения.

После диагонального изучения исходных текстов src\3rdparty\webkit стало ясно, что сначала идет разбор html-текста с соответствующей интерпретацией значений всяких символов(этот этап устраивал ранее, поэтому был оставлен как есть) в строке или блоке текста, затем наступает отрисовка текста посредством qt-надстройки над webkit, в этот момент в строке заменяются определенные символы на один символ (типа zero-width со своим кодом), затем идет qpainter c его drawText.

В итоге вся задача свелась к удалению символов типа zero-width из строки перед отрисовкой, пересборке QtWebKit4.dll.
« Последнее редактирование: Май 11, 2012, 22:32 от [Matrix] » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 21.