九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Qt WebKit學(xué)習(xí)筆記(5)---實(shí)戰(zhàn)QWebView—3

本篇為QWebView應(yīng)用的擴(kuò)展,除了之前的QWebView相關(guān)知識(shí),還涉及到QPainterQPaintEvent的應(yīng)用。本篇實(shí)現(xiàn)的效果為google map的夜視(night-mode)功能,如下圖

實(shí)現(xiàn)night-mode的原理涉及到反色等知識(shí),不過編寫起來卻十分簡單。你可以嘗試打開“畫圖”等圖片編輯工具,然后選中反色,得到的效果即我們現(xiàn)在要完成的。

QWebView的反色處理上,我們通過重寫paintEvent函數(shù)實(shí)現(xiàn):

1.首先調(diào)用QWebViewpaintEvent方法將我們需要顯示的圖片(內(nèi)容)paint

2.QPaint提供了反色的接口setCompositionMode。它是一系列圖像構(gòu)成的接口,我們選擇QPainter::CompositionMode_Difference實(shí)現(xiàn)整個(gè)畫面的反色效果

3.設(shè)置好反色效果后,調(diào)用fillRect方法填充所需變化的區(qū)域。

完整的代碼為(paintEvent,省略其他變量定義)

 

void webViewClass::paintEvent(QPaintEvent *event)

{

QWebView::paintEvent(event);

if(isNightMode)

{

QPainter p(this);

//p.setBackgroundMode(Qt::OpaqueMode);

p.setCompositionMode(QPainter::CompositionMode_Difference);

p.fillRect(event->rect(), Qt::white);

}

}

其中在fillRect中,因?yàn)?/span>CompositionMode_Difference模式指的是一種異或(xor)運(yùn)算,因?yàn)?/span>white的顏色是全1,所以和原有圖像的運(yùn)算結(jié)果剛好是按位取反的功能,做到了反色效果。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
QT簡單繪圖的坐標(biāo)系統(tǒng)
在Qt5.4中如何實(shí)現(xiàn)QOpenGLWidget和QPainter混合編程
Qt的四個(gè)常見的圖像疊加模式
Qt 顯示圖片 放大 縮小 移動(dòng)
QT中使用QPainter在ui子控件中繪圖
QT4中QPainter的使用及矩形、圓形等常見圖形的畫法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服