欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt?QGraphicsItem?移動(dòng)時(shí)出現(xiàn)殘影問題記錄

 更新時(shí)間:2024年06月20日 11:13:18   作者:求知向道  
自定義QGraphicsItem時(shí),繪制rect,對(duì)象移動(dòng)時(shí)出現(xiàn)殘影的問題記錄,本文給大家介紹Qt?QGraphicsItem?移動(dòng)時(shí)出現(xiàn)殘影問題記錄,感興趣的朋友跟隨小編一起看看吧

1.問題現(xiàn)象

自定義 QGraphicsItem 時(shí),繪制rect,對(duì)象移動(dòng)時(shí)出現(xiàn)殘影。

ec04162f14e34ac48f9dd191f6293d20.png

2.問題原因

直接原因是view未刷新的問題,所以網(wǎng)上有人使用方案  setViewportUpdateMode(QGraphicsView::FullViewportUpdate); 的方案,但當(dāng)圖片過多時(shí),此方案會(huì)造成畫面閃爍,耗費(fèi)資源等問題。

而根本原因是,boundingRect返回大小的問題,存在兩種情況:

(1)boundingRect 返回的大小,不能完全包含實(shí)際圖形大小,導(dǎo)致刷新不全

(2)boundingRect的左上角頂點(diǎn)位置、長(zhǎng)寬,未補(bǔ)全畫筆寬度,導(dǎo)致原因同(1)

boundingRect函數(shù)功能,是將圖形項(xiàng)的外部邊界定義為一個(gè)矩形。所有的繪圖操作都必須限制在圖形的邊界矩形中,QGraphicsView需要使用這個(gè)邊界來(lái)確定重繪的區(qū)域。

而邊界的寬度,精確為畫筆寬度的的一半。

3.修改方案

boundingRect的左上角頂點(diǎn),需要補(bǔ)充畫筆寬度/2,實(shí)際矩形的長(zhǎng)寬,補(bǔ)全畫筆寬度

QRectF CGraphicsDragItem::boundingRect() const
{
    return QRectF(
        -m_penWidth/2,
        -m_penWidth/2,
        m_rectWidth+m_penWidth,
        m_rectHeight+m_penWidth);
}
void CGraphicsDragItem::paint(
    QPainter *painter,
    const QStyleOptionGraphicsItem *option,
    QWidget *widget)
{
    Q_UNUSED(option);
    Q_UNUSED(widget);
    if (hasFocus() || !collidingItems().isEmpty())
    {
        m_penWidth = 10;
        painter->setPen(QPen(QColor(255, 255, 255, 200), m_penWidth));
        if (hasFocus())
        {
            for (auto it : collidingItems())
            {
                it->update();
            }
        }
    }
    else
    {
        m_penWidth = 1;
        painter->setPen(QPen(QColor(100, 100, 100, 100), m_penWidth));
    }
    painter->setBrush(m_clrBrush);
    painter->drawEllipse(0, 0, m_rectWidth, m_rectHeight);
}

到此這篇關(guān)于Qt QGraphicsItem 移動(dòng)時(shí)出現(xiàn)殘影問題記錄的文章就介紹到這了,更多相關(guān)Qt QGraphicsItem 移動(dòng)殘影內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++友元函數(shù)和友元類的使用與區(qū)別

    C++友元函數(shù)和友元類的使用與區(qū)別

    本文主要介紹了C++友元函數(shù)和友元類的使用與區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之順序數(shù)組的實(shí)現(xiàn)

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之順序數(shù)組的實(shí)現(xiàn)

    這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之順序數(shù)組的實(shí)現(xiàn)的相關(guān)資料,這里提供實(shí)現(xiàn)實(shí)例,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • 詳解C語(yǔ)言中的#define宏定義命令用法

    詳解C語(yǔ)言中的#define宏定義命令用法

    有的時(shí)候?yàn)榱顺绦虻耐ㄓ眯?可以使用#define預(yù)處理宏定義命令,它的具體作用就是方便程序段的定義和修改,下面就來(lái)詳解C語(yǔ)言中的#define宏定義命令用法.
    2016-05-05
  • C++超詳細(xì)講解函數(shù)對(duì)象

    C++超詳細(xì)講解函數(shù)對(duì)象

    在c++中,我們把所有能當(dāng)作函數(shù)使用的對(duì)象統(tǒng)稱為函數(shù)對(duì)象。它是實(shí)現(xiàn)operator()的任何類型,此運(yùn)算符被稱為調(diào)用運(yùn)算符,當(dāng)調(diào)用此操 作符時(shí),其表現(xiàn)形式如同普通函數(shù)調(diào)用一般,因此取名叫函數(shù)對(duì)象
    2022-06-06
  • C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比

    C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比

    這篇文章主要介紹了C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比,分別用于讀取組格式函數(shù)和讀取密碼格式,需要的朋友可以參考下
    2015-08-08
  • 詳解C++中的數(shù)據(jù)抽象

    詳解C++中的數(shù)據(jù)抽象

    這篇文章主要介紹了詳解C++中的數(shù)據(jù)抽象,數(shù)據(jù)抽象是指,只向外界提供關(guān)鍵信息,并隱藏其后臺(tái)的實(shí)現(xiàn)細(xì)節(jié),即只表現(xiàn)必要的信息而不呈現(xiàn)細(xì)節(jié),需要的朋友可以參考下
    2023-05-05
  • C語(yǔ)言返回值指針的函數(shù)詳解

    C語(yǔ)言返回值指針的函數(shù)詳解

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言返回值指針的函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C語(yǔ)言線性表順序表示及實(shí)現(xiàn)

    C語(yǔ)言線性表順序表示及實(shí)現(xiàn)

    這篇文章主要介紹了C語(yǔ)言線性表順序表示及實(shí)現(xiàn),線性表是最常用且最簡(jiǎn)單的一種數(shù)據(jù)結(jié)構(gòu)。簡(jiǎn)而言之,一個(gè)線性表是n個(gè)數(shù)據(jù)元素的有限序列
    2022-07-07
  • 一篇文章帶你入門C語(yǔ)言:數(shù)組

    一篇文章帶你入門C語(yǔ)言:數(shù)組

    這篇文章主要介紹了C語(yǔ)言中數(shù)組的一些基本知識(shí)小結(jié),其中重點(diǎn)是對(duì)于數(shù)組的內(nèi)存分配相關(guān)方面的知識(shí)整理,需要的朋友可以參考下
    2021-08-08
  • C語(yǔ)言中的初階指針詳解

    C語(yǔ)言中的初階指針詳解

    這篇文章主要介紹了C語(yǔ)言中的初階指針,介紹了其相關(guān)概念,具有一定參考價(jià)值。需要的朋友可以了解下,希望能夠給你帶來(lái)幫助
    2021-10-10

最新評(píng)論