日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt文档阅读笔记-QStyledItemDelegate::paint介绍及简单使用

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt文档阅读笔记-QStyledItemDelegate::paint介绍及简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

官方解析

重寫于QAbstractItemDelegate::paint()。

通過使用option與painter對指定的index位置的委托進行渲染。

當描述各種item的時候使用view的QStyle。

當從子類重新實現paint這個函數時候,要用initStyleOption()這個函數去重新設置option這個參數。

在畫圖中要盡可能的使用option參數,特別是這個參數里的rect變量。并且option里面的state這個變量也非常好用,他能判斷這個item是否enabled或selected。

當畫玩后,painter要會到調用他之前的狀態。舉個栗子,在調用前使用QPainter::save()在調用后使用QPainter::restore()。


博主小栗子

同樣還是使用了三只小豬的例子(源碼鏈接如下,在此只給出偽代碼)

原始偽代碼(很辣雞的代碼,根本就是亂搞):

void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {QStyledItemDelegate::paint(painter, option, index);if(index.data().canConvert<MyPic>()){//qDebug()<<"can be convert!";MyPic mypic=qvariant_cast<MyPic>(index.data());mypic.paint(painter,option.rect);}else{qDebug()<<"can't be convert!";} } void MyPic::paint(QPainter *painter,const QRect &rect) const {painter->setRenderHint(QPainter::Antialiasing, true);for(int i=0;i<m_num;i++){painter->drawImage(rect.x()+i*m_singlePicWidth,rect.y(),QImage(":/img/pig.png").scaled(m_singlePicWidth,m_singlePicWidth));} }

運行截圖如下:

修改后的偽代碼:

void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {QStyledItemDelegate::paint(painter, option, index);if(index.data().canConvert<MyPic>()){//qDebug()<<"can be convert!";MyPic mypic=qvariant_cast<MyPic>(index.data());if(option.state&QStyle::State_Selected){painter->save();painter->fillRect(option.rect,Qt::DiagCrossPattern);painter->restore();}mypic.paint(painter,option.rect);}else{qDebug()<<"can't be convert!";} } void MyPic::paint(QPainter *painter,const QRect &rect) const {painter->save();painter->setRenderHint(QPainter::Antialiasing, true);for(int i=0;i<m_num;i++){painter->drawImage(rect.x()+i*m_singlePicWidth,rect.y(),QImage(":/img/pig.png").scaled(m_singlePicWidth,m_singlePicWidth));}painter->restore(); }

運行截圖如下:

總結

以上是生活随笔為你收集整理的Qt文档阅读笔记-QStyledItemDelegate::paint介绍及简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天综合欧美 | 亚洲第一页中文字幕 | 欧美精品在线一区二区三区 | 欧美成人黄 | 中文字幕亚洲无线码在线一区 | 国产麻豆a毛片 | 爱情岛论坛永久入口 | 99久久99久久久精品棕色圆 | 日韩一区二区三区三四区视频在线观看 | 亚洲国产中文字幕在线 | 少妇一级淫片免费看 | 欧美成人黄 | 色乱码一区二区三区在线男奴 | 不卡中文字幕av | 亚洲乱色熟女一区二区三区 | 免费性视频| 老头老夫妇自拍性tv | 男性影院| 美国一级大黄一片免费中文 | 婷婷开心激情 | 在线色导航 | 欧美性生交xxxxx久久久缅北 | 最新中文字幕在线观看视频 | 国产亚洲精品成人av久久ww | 色香蕉视频 | 亚洲欧洲成人在线 | 91快射| 久久精品免费在线观看 | 草草在线免费视频 | 人人狠狠综合久久亚洲 | 欧美国产在线观看 | 今天最新中文字幕mv高清 | 国产精品毛片一区二区在线看 | 久久99国产精品一区 | 久久亚洲精 | 国产高清在线视频 | 亚洲美女www午夜 | 玖玖国产精品视频 | 97人妻一区二区精品免费视频 | 欧美区二区三区 | 轮番上阵免费观看在线电影 | 国产美女永久无遮挡 | 一级二级在线观看 | 成人污污视频 | 黑人极品videos精品欧美裸 | 国产靠逼网站 | 精品一区电影 | 国产av一区精品 | 99久久99久久精品国产片桃花 | 国产女无套免费视频 | 国产在线1区 | 美女在线国产 | 草碰在线视频 | 夜夜骑av| 亚洲综合五月天 | 99re在线国产| 国产精品69久久久 | 久久澡 | 黄色免费av| 特大黑人娇小亚洲女 | 欧美日韩经典 | 白峰美羽在线播放 | 国产黄色一级大片 | 午夜快播 | 69久久久| 在线观看视频色 | 武林美妇肉伦娇喘呻吟 | 男女国产精品 | 福利一区在线 | 一区二区自拍 | 久久久99久久 | 国产成人超碰人人澡人人澡 | 国产在线观看中文字幕 | 欧美日韩福利视频 | 欧美少妇性生活 | 久久久精品动漫 | 91激情捆绑调教喷水 | 欧美日韩一区二区三区不卡 | 毛片看 | 美女被娇喘流出白 | 日本成人网址 | 欧美日韩国产一区二区三区在线观看 | 可以免费看污视频的网站 | 国产一区二区三区小说 | 制服丝袜成人动漫 | 福利在线免费视频 | 亚洲AV无码成人国产精品色 | 中文字幕一区二区久久人妻网站 | 热久久免费视频 | 成人性视频网站 | 国产 丝袜 欧美中文 另类 | 日韩欧美一区二区在线 | 日本91av | 成人免费网站 | 国产精品九九 | 成人毛片在线免费观看 | 欧美一区二区三区成人 | 亚洲天堂小视频 | 天天爽夜夜爽一区二区三区 |