色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

c++ - 如何正確的使用QWebEngineView?

瀏覽:155日期:2024-03-26 08:53:44

問題描述

自從5.6版本徹底移除qwebkit,打算使用新的web引擎,大體函數(shù)沒有改變。但是一些發(fā)現(xiàn)了一些使用c++11的匿名函數(shù)作為參數(shù)的。比如:webengineview中:void toHtml(FunctorOrLambda resultCallback) const在webkit中:QString QWebFrame::toHtml() const按理說使用時是這樣(當(dāng)loadfinished后調(diào)用):

QString html;m_view->page()->toHtml( [&](const QString &v ){ qDebug() << v;//這樣是可以的。 html = v;//這樣是直接崩潰的});//后來做個測試外部int test = 1;//添加個測試//lambda內(nèi)部test = 2;//這句在外部輸出仍然是1很奇怪qDebug() << test; //仍然是1

不太能搞明白為什么新的函數(shù)要這么設(shè)計,明明一個返回值就可以的,為什么用lambda函數(shù),本來QString html = ...->toHtml();一句搞定的,非得按照上面那樣(最主要的是按照上面那樣用,我壓根取不到值!)感覺被設(shè)計是不是有點(diǎn)為了C++11而C++11了。

問題解答

回答1:

先看下面一段代碼的輸出

int test = 1; auto f = [&](){ test = 5; cout<<test<<endl; }; cout<<test<<endl; // 輸出 1 f(); // 輸出 5 cout<<test<<endl; // 輸出也是5

所以你后面說的兩個test的輸出,需要好好檢查一下。

然后

m_view->page()->toHtml( [&](const QString &v ){ qDebug() << v;//這樣是可以的。 html = v;//這樣是直接崩潰的});

這里如果將v賦值給html會崩潰,那么就需要檢查一下崩潰的原因了。你可以先把QString html;前加上static看看是否還會崩潰。如果沒有,那么說明這里的調(diào)用是異步的,在調(diào)用這個lambda的時候,html已經(jīng)不存在了。

回答2:

c++11的匿名函數(shù)的作用是為了異步吧,是不是你的變量html離開了作用域了。

標(biāo)簽: web
相關(guān)文章:
主站蜘蛛池模板: 最新中文字幕视频 | 国产片在线观看狂喷潮bt天堂 | 91极品尤物| 美国免费一级片 | 国内精品小视频 | 国产精品成人不卡在线观看 | 成人性色大片 | 一级a级国产不卡毛片 | 香蕉久久国产 | 亚洲国产精品第一区二区三区 | 特级黄色毛片在放 | 中文字幕一区在线播放 | 爱视频福利广场 | avtt亚洲一区中文字幕 | 成人国内精品久久久久影院 | 久草亚洲视频 | 国产精品吹潮在线播放 | 国产成人精品亚洲日本语音 | 中文字幕一区二区三区精彩视频 | 日本三级成人午夜视频网 | 亚洲精品国产成人中文 | 亚洲在线免费免费观看视频 | 日鲁夜鲁鲁狠狠综合视频 | 精品综合久久久久久蜜月 | 免费精品一区二区三区在线观看 | 91热在线观看精品 | 国内精品久久久久久 | 精品国产乱码久久久久久一区二区 | 国产午夜不卡在线观看视频666 | 欧美激情精品久久久久久久九九九 | 国产aⅴ一区二区三区 | 国产一级aaa全黄毛片 | www.色亚洲| 三级c欧美做人爱视频 | 国产精品单位女同事在线 | 欧美日韩一区二区在线视频 | 在线日韩视频 | 亚洲精品国产免费 | 日韩毛片大全免费高清 | 在线日韩视频 | 一男一女的一级毛片 |