Как изменить фоновое изображение, цвет и цвет шрифта qwebview

Я хочу изменить фоновое изображение, цвет и цвет шрифта моего веб-просмотра. Я попробовал метод setBackgroundRole, но у него мало цветов. Нет того цвета, который я хочу. И я не нахожу, как установить цвет шрифта и фоновое изображение. У вас есть идеи, чтобы решить эту проблему?


person Eagle King    schedule 22.06.2011    source источник


Ответы (3)


Используйте для этого html, QWebView - это просто контейнер для QWebPage, где вы можете установить все, что вам нужно, в html-коде страницы.

person Raiv    schedule 22.06.2011
comment
Спасибо за ваш ответ, но это не то, что я хочу. Пример: я хочу, чтобы при загрузке текста в Qwebview текст использовал мой цвет для отображения и отображался на моем фоне. - person Eagle King; 22.06.2011

Используйте QWidget::setPalette(), чтобы установить собственное QPalette. При этом вы можете свободно выбирать цвета для каждой роли.

Чтобы иметь изображение в качестве фона, вам нужно было бы получить свой собственный класс от QWebView и переопределить paintEvent(), я думаю.

person Steffen    schedule 22.06.2011
comment
QPalette p = ui->webView->palette(); QPixmap pixmap1("D:/duc2.jpg"); QRect rect = ui->webView->rect(); QSize size(rect.width() , rect.height()); QPixmap pixmap(pixmap1.scaled(size)); p.setBrush(QPalette::Background, pixmap); ui->webView->setPalette(p); Это мой код для установки фона веб-просмотра, но я не вижу фоновое изображение в веб-просмотре. Здесь что-то не так ? - person Eagle King; 22.06.2011
comment
Похоже, это может сработать. Вы где-то использовали setBackgroundRole() дополнительно? Хотя я думаю, что это все еще должно работать: QPalette::Background устарел, QPalette::Window - это новое перечисление для него. - person Steffen; 22.06.2011
comment
ui->webView->setBackgroundRole(QPalette::Window); Я использовал такой метод setBackgroundRole(). Я также изменил его ui->webView->setBackgroundRole(QPalette::Background);, но это не сработало. Что я могу сделать, чтобы решить эту проблему? - person Eagle King; 23.06.2011
comment
Да, кажется, что QWebView немного отличается от большинства QWidget. Мне тоже не удалось поставить фоновую картинку через QPalette. Я думаю, что лучше всего будет что-то вроде этого: labs .qt.nokia.com/2009/06/30/transparent-qwebview-or-qwebpage и разместите свое изображение под ним в разных виджетах. - person Steffen; 23.06.2011

использовать функцию setHtml

QString htmlhead = "<head><style>body {\n   background-color: #eee;\nbackground-image: url("+QUrl("qrc:/new/prefix1/back.png").toString()+");";
ui->webView->setHtml(htmlhead);
person Altair CA    schedule 01.05.2015