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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT 类及其实现效果(8)--橡皮筋线,Graphics view

發布時間:2024/1/18 c/c++ 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT 类及其实现效果(8)--橡皮筋线,Graphics view 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、選擇圖形的某個區域,繪制一個類似螞蟻線的選區。使用類QRubberBand
?if (!rubberBand)
?????rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
??? rubberBand->setGeometry(QRect(origin, QSize()));
??? rubberBand->show();

二、Graphics view
Graphics view框架結構主要包含了3個主要的類,分別是QGraphicsScene、QGraphicsView

、QGraphicsItem。QGraphicsScene場景類提供了一個用于管理位于其中的眾多項目的

QGraphicsItem容器。QGraphicsView視口類用于顯示場景中的項目。三者之間的關系

?

?

?

?


超時后可重新實現時間函數事件,完成相應相應超時處理。
void timerEvent(QTimerEvent *);

QGraphicsView和QGraphicsScene都有drawBackground()虛函數,它們做的工作都是
重畫場景的背景。
MapWidget::drawBackground(QPainter *painter, const QRectF &rect)
{
??? painter->drawPixmap(int(sceneRect().left()),int(sceneRect().top()),map);
}

?

?

使用QGraphicsItem必須重新實現兩個函數

???? QRectF boundingRect() const;
??? void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);

使用

??? ?QGraphicsScene *scene = new QGraphicsScene(this);???

????? scene->setSceneRect(-200,-200,400,400);???????

?? QGraphicsView *view = new QGraphicsView;???

??? view->setScene(scene);???

?? ?view->setMinimumSize(400,400);???

?? view->show();???????

?? setCentralWidget(view);


??? 動畫效果
MainWindow::slotAddAnimationItem()
{
??? StarItem *item = new StarItem;
??? QGraphicsItemAnimation *anim = new????? QGraphicsItemAnimation;
?? //設置要加入的動畫元素
??? anim->setItem(item);
??? QTimeLine *timeLine = new QTimeLine(4000);
??? timeLine->setCurveShape(QTimeLine::LinearCurve);
??? //時間曲線永遠循環
??? timeLine->setLoopCount(0);
?? //設置時間軸
??? anim->setTimeLine(timeLine);
????
??? int y = (qrand()%400) - 200;
???
??? //設置過程點
??? for (int i=0; i<400; i++)
??? {
??????? anim->setPosAt(i/400.0, QPointF(i-200,y));
??? }
??? timeLine->start();
??? scene->addItem(item);
}



http://blog.csdn.net/yongan1006/article/details/7712821

總結

以上是生活随笔為你收集整理的QT 类及其实现效果(8)--橡皮筋线,Graphics view的全部內容,希望文章能夠幫你解決所遇到的問題。

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