2013-08-15 4 views
4

В QWebView я динамически создаю и загружаю HTML с помощью QWebView.setHtml(). В строке HTML, которую я передаю этому методу, у меня есть раздел <style>, где я вставляю строку CSS из внешнего файла. CSS работает прекрасно, за исключением семейств шрифтов. Шрифт всегда возвращается к шрифту по умолчанию sans-serif по умолчанию QWebView. Я могу изменить этот шрифт по умолчанию, используя QWebView.settings().setFontFamily(QtWebKit.QWebSettings.StandardFont, "serif"), но это просто делает все на странице шрифтом с засечками вместо того, чтобы чтить значения шрифта семейства CSS.PySide-QtWebKit: CSS-шрифт не влияет

Соответствующий раздел в моем файле CSS:

.page-title { 
    color:#BBBBBB; 
    font-family:"Times New Roman",Garamond,serif; 
} 

Это не делает в шрифт с засечками, как ожидалось, но в общем шрифтом без засечек. Однако цвет отображается без проблем.

В какой-то момент для отладки я напечатал всю строку HTML прямо перед вызовом QWebView.setHtml() и перенаправил вывод в файл. Этот файл выглядел так, как ожидалось, когда я открыл его в Chromium, что привело меня к мысли, что проблема не проблема HTML/CSS. Here - это выход, если вы заинтересованы.

Edit: Так как я устанавливаю щедрот здесь, здесь быстрый Т.Л., д-р, который должен суммировать все важное:

С PySide, как я могу сделать QWebView чести настройки CSS семейство шрифтов в HTML-страницу, загружаемую через QWebView.setHtml()? В частности, существует ли какая-то секретная скрытая настройка, которая включает и отключает такое поведение? Или я должен сообщать об этом как об ошибке в рамках?

Если вы хотите проверить это самостоятельно, Here - это ссылка на репо GitHub для проекта, над которым я работаю. Зависимости перечислены в README.

+2

Прочитайте расчетные свойства CSS (в инструменте разработчика) и посмотрите, нет ли правила перезаписывания динамического CSS. –

+1

Кажется, у меня проблемы с поиском чего-либо в API, который имеет значение, помимо вызовов методов, которые я уже использовал. Однако, используя JavaScript внутри страницы, я обнаружил, что вычисленный стиль для этого раздела, по сути, Times! Поэтому он вычисляется правильно, но что-то в Qt переопределяет его. –

+0

Я довольно плохие знания в тех технологиях, которые вы используете. Однако последнее, о чем я могу думать в данный момент, это использовать '! Important' в вашем правиле CSS. Например: «font-family:« Times New Roman »,« Garamond »,« serif »! Important;'. Удачи ! –

ответ

3

В заголовке page.html (тот, который вы связаны) https://raw.github.com/crayZsaaron/df-legends-reader/master/page.html

Я нашел это ..

.page-title { 
    color:#BBBBBB; 
    font-family:Helvetica, sans-serif; 
} 

Может попробовать удалить это, или заменить его с этим

.page-title { 
    color:#BBBBBB; 
    font-family:"Times New Roman",Garamond,serif; 
} 
+0

Спасибо, да, я переключил CSS-кучу до и после вопроса.Стили, которые я дал в моем вопросе, могут не совпадать со стилями в проекте в настоящее время. Прямо сейчас, я думаю, что заголовок должен быть в Helvetica, но содержание страницы должно быть в Times New Roman, а HTML вычисляется как таковой при загрузке страницы, но затем каким-то образом переопределяется Qt. Извините за путаницу. –

+0

Мне нужно будет увидеть ошибку при запуске, чтобы проверить элемент и увидеть, как css это его исправить, вы можете это сделать .. Rigth click on chrome, «проверить элемент». –

+1

В Chrome этот HTML-файл отображается правильно, поэтому нет «проблемного элемента» для проверки. Проблема не в HTML/CSS, а в Qt. –

 Смежные вопросы

  • Нет связанных вопросов^_^