h为前边程序设置的某一对象
ButtonDownFcn为这一对象的一个属性,即单击触发相应的函数
@buttonDownCallback,为触发的相对应的函数,这个是需要编写的
%显示图像
h=image(data); 或者为 h=imshow(data);
%设置图像的单击事件函数 myCallback为自定义函数
set(h,'ButtonDownFcn',{@myCallback,handles});
注意:MATLAB 的Figure 中windowButtonDownFcn和ButtonDownFcn的区别
1、figure的windowbuttondown函数是当鼠标在figure中点击时(无论是左键还是右键),程序调用的回调函数。这时,程序不管鼠标是在那一个控件的区域内,只要点击,都调用该函数;
2、axes或其它控件的ButtonDownFcn函数是当控件位于该控件的区域内时,点击时所调用的函数。
ButtonDownFcn函数是当在控件上按下鼠标按键(左键、右键或中间键)时调用的函数。但对于pushbutton控件,当在按钮上按下鼠标左键时,调用的是callback,而不调用ButtonDownFcn。但如果在按钮的周围大约5个像素点的范围内点击鼠标左键时,ButtonDownFcn就会被调用.
MATLAB GUI axes的ButtondownFCN无效的问题
最近解决的一个matlab gui难题。
设置了axes的ButtondownFCN后,显示了一张图片,结果点击axes,却没有反应。
原因是,显示了图片后,点击的是图片,而不是axes。axes被压在图片下面了。
所以应该给图片设置一个ButtondownFCN。
在网上查了查资料,已有的方法都有问题,不过也提供了思路,我根据自己的需要改了下。
下面是直接从我的文件中拿出来的一段。
蓝色的字是关键
显示一张图片后,紧接着设置点击这张图片后的callback
1、figure的windowbuttondown函数是当鼠标在figure中点击时(无论是左键还是右键),程序调用的回调函数。这时,程序不管鼠标是在那一个控件的区域内,只要点击,都调用该函数;
2、axes或其它控件的ButtonDownFcn函数是当控件位于该控件的区域内时,点击时所调用的函数。matlab如何区分控件呢?是通过控件的句柄--handle来区别的。
初次建立axes控件时,系统获得一个句柄,这个句柄是和该axes是对应的;当显示了图片以后,原先的axes改变了(包括axes轴的x、y轴的范围,比例等),再点击axes轴,这时是点击的图片,并不是原先的axes了,所以ButtonDownFcn当然不会被调用了,但windowbuttondown照样被调用。
3、解决的办法是:在用imshow或其它函数显示完图像时,用h=imshow等取得显示的图像的句柄,定义图像对象的ButtonDownFcn回调函数为自己定义的函数。
请问在matlab中,set(h,'ButtonDownFcn',@buttonDownCallback)是什么意思?@buttonDownCallback是什么?下面是源代码。这个代码主要的功能是得到坐标的值。function mytestfunction()f=figure;set(f,'WindowButtonDownFcn',@mytestcallback)function myt
buttondownfcn指用鼠标单击该pushbutton,keypressfcn指在键盘上按下一个键。
buttondownfcn就是pushbutton的其中一个callback函数,选择某个属性后系统会自动创建该属性的一个callback函数模板,然后自己再添加需要的代码。
当没有callback函数时,或有callback函数但Enable为off 时,在pushbutt
Callback 与 ButtonDownFcn是MATLAB GUI 设计中容易混淆的两个回调函数,在触控按钮(Push Button)、静态文本(Static Text)、切换按钮(Toggle Button)、滑动条(Slider)等控件中均有这两个函数(也叫“属性”)。下面仅以 PushButton 为例进行说明。
两函数的调用要涉及的另一个用于使能或禁用控件...
我的程序任务很简单,就是当在一幅图像上单击的时候,( 可编辑文本框 )实时显示当前鼠标单击点的坐标。
1、figure的windowbuttondown函数是当鼠标在figure中点击时(无论是左键还是右键),程序调用的回调函数。这时,程序不管鼠标是在那一个控件的区域内,只要点击,都调用该函数;
2、axes或其它控件的ButtonDownFcn函数是当控件位于该控件的区域内时,点击时所调用的函...
如注释所示,我想在按钮上实现四种点击响应,在运行的时候,其它的都行,就是无法实现“左键双击变蓝色”的效果,程序也没有任何报错信息,求大侠指点下到底是烦什么?怎么修改?如果有更好的办法的话我会提高悬赏的!
a=uicontrol(gcf,'style','push','BackgroundColor',[0,0.7,0],...
'ButtonDownFcn',['if strcmp(get(gcf
CreatFcn一般用于各种属性的初始化,而程序的初始化过程肯定是在程序的运行初期就执行的。
CreatFcn是在建立这个对象控件时就触发。
转自:http://www.ilovematlab.cn/thread-52518-1-1.html
2、Callback
Callback是在点击或者按下或者选中时才触发的回调函数。
3、DeleteFcn
Matlab
function [] = GUI_18()
% Demonstrate the use of the buttondownfcn for an axes.
% Clicking on the axes creates a random line. Note that clicking on the
% line does the same thing. This must be
```matlab
set(fig,'ButtonDownFcn',@(src,event)scatter(event.IntersectionPoint(1),event.IntersectionPoint(2),'MarkerEdgeColor',[1 0 0],'MarkerFaceColor',[1 0 0]));
其中,`[1 0 0]` 表示红色,你可以根据需要修改颜色。
嘻嘻不上火:
Matlab中hold on与hold off的用法
SYS328:
远视储备隐藏与暴露
2301_78684567:
远视储备隐藏与暴露
2301_78684567:
AnchorFree系列算法详解
Kiiiim4499: