0

假设我有两个 qwebview 小部件。让我们将其称为 W1 和 W2,然后我将网址设置为

W1->setUrl("someUrlHere");. 

两个页面都有单独的 css 文件。

然后我将更改 w1 中某些元素的背景

.setStyleProperty("background-color",qColor(255,0,0));

到目前为止一切都很好,背景变为红色。

现在我想用 w1 替换 w2 中的页面(不使用.seturl),包括 w1 的样式表。然后我希望能够在不影响其他颜色的情况下更改它们的颜色

我试过.toHtml()and .sethtml(),但这只会复制 html(当然),因此 w1 的所有样式都丢失了。

还尝试了许多其他方法,包括.setpage.clone...但它似乎只更改了 html,或者它更改了指向它的指针,(所以如果我对 w1 进行更改,它只会影响 w2 并且不能再触摸 w1 ETC..)

是否有可能做到这一点?另外,是否可以在不需要每个小部件的情况下做到这一点?

4

1 回答 1

0

我不知道这个线程是否仍然处于活动状态,但我在寻找我面临的 QtWebkit 问题的答案时偶然发现了它。反正...

void QNAMProxy::HandleFinished( QNetworkReply* reply ) {
    if( reply->error( )) {
        // Something went wrong
    } else {
        QUrl url = reply->url( );
        //TODO Parse the URL to create your local path
        QFile file( "Parsed local file name" );
        if (!file.open(QIODevice::WriteOnly)) {
            // Some problem with creating the file to write
        } else {
            file.write( reply->readAll( ));
            file.close( );
        }
    }
}

如果要将页面保存为 html

webPage->currentFrame()->toHtml() => QString

希望这可以帮助

于 2016-08-16T06:06:01.433 回答