boundingRect 的问题

wyjblue 2015-06-02 05:16:32
各位好,我要实现的功能是,MyItem继承QGraphicsItem

class MyItem(Qpoint(x1,y1),Qpoint(x2,y2))
{
mline=qlines(Qpoint(x1,y1),Qpoint(x2,y2));
setFlag(QGraphicsItem::ItemIsMovable, true);
setFlag(QGraphicsItem::ItemIsSelectable, true);
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
}
QRectF boundingRect() const
{
qreal penWidth = 1;
return QRectF(mline.getX1() - penWidth / 2, mline.getY1() - penWidth / 2,
mline.getX2() + penWidth, mline.getY2() + penWidth);
}
实例化MyItem *nitem=new MyItem(Qpoint(x1,y1),Qpoint(x2,y2));
scene.additem(nitem);

绘制OK,但对单独图元操作出问题了,比如想移动一个线的item 选中一个对象进行移动 结果 那个对象带动它附近其他对象一起move
还有 我想实现 鼠标hover在图元上 与鼠标按下 出现如下效果

在 Myitem的paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget /*= 0*/ )
{
......
if(option->state & QStyle::State_Selected)
{

painter->drawRect(boundingRect()); 选中后出现矩形框,但实际实验下来 整个乱套了
}
}
请问 这个线的boundingRect() 如何计算
上图中 两个效果如何设计
...全文
688 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyjblue 2015-06-08
  • 打赏
  • 举报
回复
谢谢你的回复,问题已经决解了,是我的边界值搞错了,所以没效果出来,是要做个图形编辑器,里面的一些图处理起来麻烦的很 哎。。。。
firebolt2002 2015-06-02
  • 打赏
  • 举报
回复
我刚上传了一个我写的demo,模仿drawcli写的,功能不完整,不过基本操作都有了,目前只创建矩形和椭圆,你可以把线也加上。 http://download.csdn.net/detail/firebolt2002/8765313
firebolt2002 2015-06-02
  • 打赏
  • 举报
回复
1、直线边界可以参考qt自带的例子程序 diagramscene。 QRectF Arrow::boundingRect() const { qreal extra = (pen().width() + 20) / 2.0; return QRectF(line().p1(), QSizeF(line().p2().x() - line().p1().x(), line().p2().y() - line().p1().y())) .normalized() .adjusted(-extra, -extra, extra, extra); } 2、你是不是想做个类似visio的图形控制点的效果呢? 这个比较麻烦,你可以参考一下mfc的例子drawcli。
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统中变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研中的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文中提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。

21,495

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧