QWebView纯文本文档样式

时间:2014-10-10 19:30:14

标签: c++ qt qwebview

在我的应用中,我有几个地方使用QWebView并从服务器加载内容。此外,该应用程序允许用户选择默认或黑暗主题。当要显示的文档的内容类型是text / plain并且应用程序主题设置为dark时,文本在黑色背景上显示为黑色文本。如果我突出显示,我只能看到文字。 text / html文档适用于任何一个主题。

理想情况下,当选择黑暗主题时,我想在黑色(或深灰色)背景上显示白色文字。我一直无法弄清楚如何做到这一点。

以下是我目前用于设置主题的代码:

if(Theme == "dark")
{
    app.setStyle(QStyleFactory::create("Fusion"));
    QPalette darkPalette;
    darkPalette.setColor(QPalette::Window,          QColor(88,88,88));
    darkPalette.setColor(QPalette::WindowText,      Qt::white);
    darkPalette.setColor(QPalette::Base,            QColor(25,25,25));
    darkPalette.setColor(QPalette::AlternateBase,   QColor(88,88,88));
    darkPalette.setColor(QPalette::ToolTipBase,     Qt::white);
    darkPalette.setColor(QPalette::ToolTipText,     Qt::white);
    darkPalette.setColor(QPalette::Text,            Qt::white);
    darkPalette.setColor(QPalette::Button,          QColor(53,53,53));
    darkPalette.setColor(QPalette::ButtonText,      Qt::white);
    darkPalette.setColor(QPalette::BrightText,      Qt::red);
    darkPalette.setColor(QPalette::Link,            QColor(42, 130, 218));
    darkPalette.setColor(QPalette::Highlight,       QColor(150, 200, 255));
    darkPalette.setColor(QPalette::HighlightedText, Qt::black);
    app.setPalette(darkPalette);
} else {
    Theme = "default";
    app.setStyle(QStyleFactory::create("Fusion"));
    app.setPalette(DefaultPalette);
}

// load the style sheet
QFile file(":/themes/" + Theme + "theme.css");
file.open(QIODevice::ReadOnly);
const QByteArray theme = file.readAll();
app.setStyleSheet(theme);

默认主题样式表为空白,黑暗样式表为:

QToolTip {
    color: #ffffff;
    background-color: #2a82da;
    border: 1px solid white;
}

QScrollBar:horizontal  {
    border: 1px solid grey;
    background: #606060;
    height: 20px;
    margin: 0px 20px 0px 20px;
}
QScrollBar::handle:horizontal  {
    border: 1px solid #909090;
    background: #303030;
    min-width: 20px;
}
QScrollBar::add-line:horizontal  {
    border: 1px solid #909090;
    background: #303030;
    image: url(:/themes/themes/dark/sbright.png);
    width: 20px;
    subcontrol-position: right;
    subcontrol-origin: margin;
}
QScrollBar::sub-line:horizontal  {
    border: 1px solid grey;
    background: #303030;
    image: url(:/themes/themes/dark/sbleft.png);
    width: 20px;
    subcontrol-position: left;
    subcontrol-origin: margin;
}


QScrollBar:vertical  {
    border: 1px solid grey;
    background: #606060;
    width: 20px;
    margin: 20px 0 20px 0;
}
QScrollBar::handle:vertical  {
    border: 1px solid #909090;
    background: #303030;
    min-height: 20px;
}
QScrollBar::add-line:vertical  {
    border: 1px solid #909090;
    background: #303030;
    image: url(:/themes/themes/dark/sbdown.png);
    height: 20px;
    subcontrol-position: bottom;
    subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical  {
    border: 1px solid grey;
    background: #303030;
    image: url(:/themes/themes/dark/sbup.png);
    height: 20px;
    subcontrol-position: top;
    subcontrol-origin: margin;
}

0 个答案:

没有答案