91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 712KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-10
  • 語(yǔ)言: 其他
  • 標(biāo)簽: Qt??

資源簡(jiǎn)介

使用QGraphicsView和QGraphicsScene實(shí)現(xiàn)的一個(gè)拼圖游戲DEMO,演示了Qt 圖形視圖框架的應(yīng)用。

資源截圖

代碼片段和文件信息

#include?“imageitem.h“
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?

PuzzlePartManager::PuzzlePartManager(QGraphicsScene?*scene)
????:?m_scene(scene)
{

}

void?PuzzlePartManager::addSourceItems(int?partId?PuzzleImageItem?*item)
{
????m_sourceItems.insert(partId?item);
}

void?PuzzlePartManager::removeItem(int?partId)
{
????QMap::iterator?it?=?m_sourceItems.find(partId);
????if(it?!=?m_sourceItems.end())
????{
????????PuzzleImageItem?*item?=?it.value();
????????m_sourceItems.remove(partId);
????????m_scene->removeItem(dynamic_cast(item));
????????item->deleteLater();
????}

????if(m_sourceItems.size()?==?0)
????{
????????QGraphicsSimpleTextItem?*info?=?new?QGraphicsSimpleTextItem(“Congratulations!“);
????????info->setPen(QPen(Qt::blue));
????????info->setPos(10?10);
????????QFont?font?=?qApp->font();
????????font.setPointSize(16);
????????info->setFont(font);
????????m_scene->addItem(info);
????}
}

//
//?class?PuzzleImageItem
//

PuzzleImageItem::PuzzleImageItem(const?QString?&?imagePath?int?w
?????????????????????????????????int?h?int?partId)
????:?m_image(imagePath)
?????m_width(w)
?????m_height(h)
?????m_partId(partId)
{
????setCursor(Qt::OpenHandCursor);
????setAcceptedMouseButtons(Qt::LeftButton);
}

QRectF?PuzzleImageItem::boundingRect()?const
{
????return?QRectF(0?0?m_width?m_height);
}

void?PuzzleImageItem::paint(QPainter?*painter?const?QstyleOptionGraphicsItem?*option?QWidget?*widget)
{
????Q_UNUSED(option);
????Q_UNUSED(widget);
????painter->drawImage(0?0?m_image);
}

void?PuzzleImageItem::mousePressEvent(QGraphicsSceneMouseEvent?*event)
{
????setCursor(Qt::ClosedHandCursor);
}

void?PuzzleImageItem::mouseMoveEvent(QGraphicsSceneMouseEvent?*event)
{
????if?(QLineF(event->screenPos()?event->buttonDownScreenPos(Qt::LeftButton))
????????.length()?????????return;
????}

????QDrag?*drag?=?new?QDrag((Qobject*)event->widget());
????QMimeData?*mime?=?new?QMimeData;
????mime->setImageData(m_image);
????mime->setData(QString(QmetaType::typeName(QmetaType::Int))?QString(“%1“).arg(m_partId).toLatin1());
????drag->setMimeData(mime);

????drag->setPixmap(QPixmap::fromImage(m_image));
????drag->setHotSpot(QPoint(15?30));

????drag->exec();
????setCursor(Qt::OpenHandCursor);
}

void?PuzzleImageItem::mouseReleaseEvent(QGraphicsSceneMouseEvent?*event)
{
????setCursor(Qt::OpenHandCursor);
}

//
//?class?PuzzlePart
//
PuzzlePart::PuzzlePart(PuzzlePartManager?*mgr?int?w?int?h?int?partId?QGraphicsItem?*parent)
????:?QGraphicsobject(parent)
?????m_sourcePartManager(mgr)
?????m_width(w)
?????m_height(h)
?????m_partId(partId)
?????m_dragOver(false)
{
????setAcceptDrops(true);
}

QRectF?PuzzleP

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????6050??2016-10-14?06:28??qPuzzle\demo.camproj

?????文件?????905216??2016-10-14?06:27??qPuzzle\demo.camrec

?????文件??????77584??2016-10-14?06:30??qPuzzle\demo.gif

?????文件???????4365??2016-10-13?23:51??qPuzzle\imageitem.cpp

?????文件???????1809??2016-10-13?23:44??qPuzzle\imageitem.h

?????文件????????161??2016-10-13?21:37??qPuzzle\images.qrc

?????文件???????1588??2016-10-13?23:45??qPuzzle\main.cpp

?????文件??????41022??2016-10-12?15:08??qPuzzle\model.png

?????文件???????4609??2016-10-12?15:09??qPuzzle\model_1.png

?????文件???????4934??2016-10-12?15:09??qPuzzle\model_2.png

?????文件????????387??2016-10-13?21:36??qPuzzle\qPuzzle.pro

?????文件??????18652??2016-10-13?23:51??qPuzzle\qPuzzle.pro.user

?????目錄??????????0??2016-10-14?06:32??qPuzzle

-----------?---------??----------?-----??----

??????????????1066377????????????????????13


評(píng)論

共有 條評(píng)論