资源简介
基于Qt QGraphicsScene的画图演示,可对图元进行移动和缩放,例子比较简单,可以参考。
代码片段和文件信息
#include “eresizefocus.h“
#include “svgscene.h“
#include “SvgGraphicsItem.h“
#include
EResizeFocus::EResizeFocus(PosInHost posSvgGraphicsItem *svgitem)
: QGraphicsRectItem(0066)posInHost(pos)wsize(6)
{
/*SvgScene::myscene->addItem(this);
setAcceptsHoverEvents(true);
setVisible(false);
QPen pen = QPen(QColor(Qt::blue));
setPen(pen);
QBrush brush = QBrush(QColor(Qt::red));
setBrush(brush);*/
mySvgItem = svgitem;
initial();
//locateInHost();
}
EResizeFocus::~EResizeFocus()
{
}
void EResizeFocus::initial(){
SvgScene::myscene->addItem(this);
setAcceptsHoverEvents(true);
setVisible(false);
QPen pen = QPen(QColor(Qt::blue));
setPen(pen);
QBrush brush = QBrush(QColor(Qt::red));
setBrush(brush);
locateInHost();
}
void EResizeFocus::hoverEnterEvent ( QGraphicsSceneHoverEvent * event )
{
switch(posInHost){
case NORTH_MIDDLE:
setCursor(Qt::SizeVerCursor);
break;
case SOUTH_MIDDLE:
setCursor(Qt::SizeVerCursor);
break;
case EAST_MIDDLE:
setCursor(Qt::SizeHorCursor);
break;
case WEST_MIDDLE:
setCursor(Qt::SizeHorCursor);
break;
case NORTH_WEST:
setCursor(Qt::SizeFDiagCursor);
break;
case SOUTH_EAST:
setCursor(Qt::SizeFDiagCursor);
break;
case NORTH_EAST:
setCursor(Qt::SizeBDiagCursor);
break;
case SOUTH_WEST:
setCursor(Qt::SizeBDiagCursor);
break;
default:
break;
}
QGraphicsRectItem::hoverEnterEvent(event);
}
void EResizeFocus::hoverLeaveEvent ( QGraphicsSceneHoverEvent * event )
{
QGraphicsRectItem::hoverLeaveEvent(event);
}
void EResizeFocus::locateInHost()
{
const QRectF parentRect = mySvgItem->matrixBoundingRect();
qreal x = 0 y = 0;
switch(posInHost){
case NORTH_MIDDLE:
x = parentRect.x() + parentRect.width() / 2 - wsize / 2;
y = parentRect.y()- wsize / 2;
break;
case SOUTH_MIDDLE:
x = parentRect.x() + parentRect.width() / 2 - wsize / 2;
y = parentRect.y() +parentRect.height() - wsize/2;
break;
case EAST_MIDDLE:
x = parentRect.x() + parentRect.width() - wsize/2;
y = parentRect.y() + parentRect.height() / 2 - wsize / 2;
break;
case WEST_MIDDLE:
x = parentRect.x()- wsize / 2;
y = parentRect.y()+ parentRect.height() / 2 - wsize / 2;
break;
case NORTH_WEST:
x = parentRect.x()- wsize / 2;
y = parentRect.y()- wsize / 2;
break;
case SOUTH_EAST:
x = parentRect.x() + parentRect.width() - wsize/2;
y = parentRect.y() + parentRect.height() - wsize/2;
break;
case NORTH_EAST:
x = parentRect.x() + parentRect.width() - wsize/2;
y = parentRect.y()- wsize / 2;
break;
case SOUTH_WEST:
x = parentRect.x()- wsize / 2;
y = parentRect.y() + parentRect.height() - wsize/2;
break;
default:
break;
}
setPos(xy);
}
const EResizeFocus &EResizeFocus::operator=(const EResizeFocus & right )
{
wsize = right.wsize;
return *this;
}
void
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 131072 2010-11-10 15:54 画图调节大小源代码\Debug\MainWindowTest.exe
文件 1320224 2010-11-10 15:54 画图调节大小源代码\Debug\MainWindowTest.ilk
文件 2427904 2010-11-10 15:54 画图调节大小源代码\Debug\MainWindowTest.pdb
文件 15614 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\BuildLog.htm
文件 157118 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\eresizefocus.obj
文件 42798 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\main.obj
文件 621 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\MainWindowTest.exe.intermediate.manifest
文件 185737 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\mainwindowtest.obj
文件 44236 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\moc_mainwindowtest.obj
文件 49908 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\moc_myitemproxywidget.obj
文件 67 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\mt.dep
文件 168409 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\myitemproxywidget.obj
文件 23085 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\qrc_mainwindowtest.obj
文件 156947 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\svgellipseitem.obj
文件 70227 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\svggraphicsitem.obj
文件 156517 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\svgrectitem.obj
文件 138823 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\svgscene.obj
文件 133002 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\svgview.obj
文件 1977344 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\vc90.idb
文件 1757184 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\Debug\vc90.pdb
文件 5891 2009-12-30 08:39 画图调节大小源代码\MainWindowTest\eresizefocus.cpp
文件 1258 2009-12-29 21:13 画图调节大小源代码\MainWindowTest\eresizefocus.h
文件 2462 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\GeneratedFiles\Debug\moc_mainwindowtest.cpp
文件 2405 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\GeneratedFiles\Debug\moc_myitemproxywidget.cpp
文件 72423 2010-11-10 15:54 画图调节大小源代码\MainWindowTest\GeneratedFiles\qrc_mainwindowtest.cpp
文件 4347 2009-09-12 11:25 画图调节大小源代码\MainWindowTest\GeneratedFiles\ui_mainwindowtest.h
文件 1352 2009-07-14 08:13 画图调节大小源代码\MainWindowTest\GeneratedFiles\ui_table.h
文件 1339 2008-01-09 08:43 画图调节大小源代码\MainWindowTest\images\copy.png
文件 1323 2008-01-09 08:43 画图调节大小源代码\MainWindowTest\images\cut.png
文件 2011 2008-01-09 08:43 画图调节大小源代码\MainWindowTest\images\find.png
............此处省略51个文件信息
相关资源
- Qt嵌入式虚拟键盘
- MQTT-client for D7
- utdMQTT-client for D7
- Qt_mp3播放器
- 用QT做的一个计算器
- 计算机图形学课设线画图元生成系统
- QGIS-源码QT4.8.6 和VS2010 qgis
- 数学老师编辑试卷、画图的免费工具
- UML画图软件,类图,ER图等!压缩包内
- 扫雷项目Qt实现
- QT实现的MP3播放器
- Qt从入门到精通PDF
- QT写的超市管理系统
- qt+opencv的视频采集 与保存
- linux系统下基于QT的usb摄像头视频采集
- raytracegroundup_v4.8_RayTracing_Scenes_Globe_
- QT简单的记事本
- 二维码的生成与解析
- 真正编译好的poppler-qt4
- qt 360界面源码
- 基于QT制作的音乐播放器
- STM32+ESP8266+MQTT接入OneNet 通过手机APP控
- Qt + VS环境下,利用avilib实现简单的录
- paho.mqtt.c 树莓派交叉编译版本SDK
- 典型实用的QT电子书
- QSS文件模板
- ARP攻击模拟工具 第二代
- Qt从入门到精通
- Qt OpenGL 天空盒
- Qt进度条QProgressBar的使用详细代码
评论
共有 条评论