Qt實現(xiàn)圖形裁減
更新時間:2022年06月14日 16:20:29 作者:蝦球xz
這篇文章主要為大家詳細介紹了Qt實現(xiàn)圖形裁減,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Qt實現(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(); }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫一個chart中顯示兩條曲線詳細方法與實例
這篇文章主要介紹了Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫一個chart中顯示兩條曲線詳細方法與實例,需要的朋友可以參考下2020-03-03C語言 ffmpeg與sdl實現(xiàn)播放視頻同時同步時鐘詳解
使用ffmpeg和sdl實現(xiàn)播放視頻后,需要再實現(xiàn)時鐘同步才能正常的播放視頻,尤其是有音頻的情況,我們通常需要將視頻同步到音頻來確保音畫同步2022-09-09visual studio 2013中配置opencv圖文教程 Opencv2.4.9安裝配置教程
這篇文章主要為大家詳細介紹了Opencv2.4.9安裝教程,以及在visualstudio 2013中opencv的配置步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04