Qt實(shí)現(xiàn)圖形裁減
本文實(shí)例為大家分享了Qt實(shí)現(xiàn)圖形裁減的具體代碼,供大家參考,具體內(nèi)容如下
main.cpp
#include <QApplication> #include <QGraphicsItemGroup> #include <QGraphicsView> #include <QPushButton> #include <QVBoxLayout> class GraphicsItemGroup : public QGraphicsItemGroup { public: ? ? GraphicsItemGroup(QGraphicsItem *parent = 0) : QGraphicsItemGroup(parent) ? ? { ? ? ? ? setFlag(QGraphicsItem::ItemClipsChildrenToShape, true); ? ? } ? ? QPainterPath shape() const ? ? { ? ? ? ? if (mShape.isEmpty()) ? ? ? ? ? ? return QGraphicsItemGroup::shape(); ? ? ? ? return mShape; ? ? } ? ? void setShape(const QPainterPath &shape) ? ? { ? ? ? ? mShape = shape; ? ? ? ? update(); ? ? } private: ? ? QPainterPath mShape; }; int main(int argc, char *argv[]) { ? ? QApplication a(argc, argv); ? ? QWidget w; ? ? w.setLayout(new QVBoxLayout); ? ? QGraphicsView view; ? ? QPushButton button("click me"); ? ? w.layout()->addWidget(&view); ? ? w.layout()->addWidget(&button); ? ? view.setScene(new QGraphicsScene); ? ? GraphicsItemGroup group; ? ? view.scene()->addItem(&group); ? ? auto ellipse = new QGraphicsEllipseItem(QRectF(0, 0, 100, 100)); ? ? ellipse->setBrush(Qt::red); ? ? auto rect = new QGraphicsRectItem(QRect(150, 150, 100, 100)); ? ? rect->setBrush(Qt::blue); ? ? group.addToGroup(ellipse); ? ? group.addToGroup(rect); ? ? QObject::connect(&button, &QPushButton::clicked, [&group]() ? ? { ? ? ? ? QPainterPath shape; ? ? ? ? if (group.shape().boundingRect() == group.boundingRect()) ? ? ? ? { ? ? ? ? ? ? shape.addRect(0, 50, 250, 150); ? ? ? ? } ? ? ? ? group.setShape(shape); ? ? }); ? ? w.show(); ? ? return a.exec(); }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++ 哈夫曼樹(shù)對(duì)文件壓縮、加密實(shí)現(xiàn)代碼
這篇文章主要介紹了C++ 哈夫曼樹(shù)對(duì)文件壓縮、加密實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Qt圖形圖像開(kāi)發(fā)之曲線圖表模塊QChart庫(kù)一個(gè)chart中顯示兩條曲線詳細(xì)方法與實(shí)例
這篇文章主要介紹了Qt圖形圖像開(kāi)發(fā)之曲線圖表模塊QChart庫(kù)一個(gè)chart中顯示兩條曲線詳細(xì)方法與實(shí)例,需要的朋友可以參考下2020-03-03Qt之簡(jiǎn)單的異步操作實(shí)現(xiàn)方法
這篇文章主要介紹了Qt之簡(jiǎn)單的異步操作實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11Qt編寫(xiě)地圖遷徙圖的實(shí)現(xiàn)示例
本文主要介紹了Qt編寫(xiě)地圖遷徙圖的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12C語(yǔ)言 ffmpeg與sdl實(shí)現(xiàn)播放視頻同時(shí)同步時(shí)鐘詳解
使用ffmpeg和sdl實(shí)現(xiàn)播放視頻后,需要再實(shí)現(xiàn)時(shí)鐘同步才能正常的播放視頻,尤其是有音頻的情況,我們通常需要將視頻同步到音頻來(lái)確保音畫(huà)同步2022-09-09visual studio 2013中配置opencv圖文教程 Opencv2.4.9安裝配置教程
這篇文章主要為大家詳細(xì)介紹了Opencv2.4.9安裝教程,以及在visualstudio 2013中opencv的配置步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04