我如何在MATLAB实现拖拽功能吗?

192(30天)
我想可以拖拽一个图形对象(如:文本框)图窗口。

接受的答案

MathWorks支金宝app持团队
编辑: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]);
结束
结束
结束
3评论

登录置评。

更多的答案(0)

类别

找到更多的在迁移向导的应用帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!