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

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)文章

最新評論