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++ 哈夫曼樹對(duì)文件壓縮、加密實(shí)現(xiàn)代碼
這篇文章主要介紹了C++ 哈夫曼樹對(duì)文件壓縮、加密實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫(kù)一個(gè)chart中顯示兩條曲線詳細(xì)方法與實(shí)例
這篇文章主要介紹了Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫(kù)一個(gè)chart中顯示兩條曲線詳細(xì)方法與實(shí)例,需要的朋友可以參考下2020-03-03
Qt之簡(jiǎn)單的異步操作實(shí)現(xiàn)方法
這篇文章主要介紹了Qt之簡(jiǎn)單的異步操作實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
C語(yǔ)言 ffmpeg與sdl實(shí)現(xiàn)播放視頻同時(shí)同步時(shí)鐘詳解
使用ffmpeg和sdl實(shí)現(xiàn)播放視頻后,需要再實(shí)現(xiàn)時(shí)鐘同步才能正常的播放視頻,尤其是有音頻的情況,我們通常需要將視頻同步到音頻來(lái)確保音畫同步2022-09-09
visual studio 2013中配置opencv圖文教程 Opencv2.4.9安裝配置教程
這篇文章主要為大家詳細(xì)介紹了Opencv2.4.9安裝教程,以及在visualstudio 2013中opencv的配置步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04

