我如何在MATLAB实现拖拽功能吗?
192(30天)
显示旧的评论
我想可以拖拽一个图形对象(如:文本框)图窗口。
接受的答案
MathWorks支金宝app持团队
2019年4月12日
编辑:MathWorks支金宝app持团队
2019年4月12日
在图像处理工具箱,有一些功能提供可拖动的对象如imrect和不等等。
详情,请参考以下文档:
同时,这个特性可以实现使用图属性和图形的组合对象属性。图的属性有:使用
WindowButtonUpFcn
WindowButtonMotionFcn
CurrentPoint
使用的图形对象的属性是:
ButtonDownFcn
下面的示例实现拖放功能的文本框显示在图窗口。这个例子函数也附加MATLAB-file:
函数drag_drop
拖动= [];
orPos = [];
图(f =“WindowButtonUpFcn”@dropObject,“单位”,“归一化”,“WindowButtonMotionFcn”,@moveObject);
一个=注释(“文本框”,“位置”(0.2 - 0.2 0.2 - 0.2),“字符串”,“你好”,“ButtonDownFcn”,@dragObject);
函数dragObject (hObject eventdata)
拖动= hObject;
orPos =得到(gcf,“CurrentPoint”);
结束
函数dropObject (hObject eventdata)
如果~ isempty(拖)
newPos =得到(gcf,“CurrentPoint”);
posDiff = newPos - orPos;
集(拖,“位置”得到(拖“位置”)+ (posDiff (1:2) 0 0]);
拖动= [];
结束
结束
函数moveObject (hObject eventdata)
如果~ isempty(拖)
newPos =得到(gcf,“CurrentPoint”);
posDiff = newPos - orPos;
orPos = newPos;
集(拖,“位置”得到(拖“位置”)+ (posDiff (1:2) 0 0]);
结束
结束
结束