如注释所示,我想在按钮上实现四种点击响应,在运行的时候,其它的都行,就是无法实现“左键双击变蓝色”的效果,程序也没有任何报错信息,求大侠指点下到底是烦什么?怎么修改?如果有更好的办法的话我会提高悬赏的!
a=uicontrol(gcf,'style','push','BackgroundColor',[0,0.7,0],...
'ButtonDownFcn',['if strcmp(get(gcf,''SelectionType''),''open'')'...%鼠标右键双击时按钮变黄色
'set(gco,''style'',''push'',''backgroundcolor'',[1,1,0]);'...
'else set(gco,''style'',''push'',''backgroundcolor'',[1,0,0]);'...%鼠标右键单击变红色
'end'],...
'Callback',['if strcmp(get(gcf,''SelectionType''),''open'')'...%鼠标左键双击变蓝色
'set(gco,''style'',''push'',''backgroundcolor'',[0,0,1]);'...
'else set(gco,''style'',''push'',''backgroundcolor'',[0,0,0]);'...%鼠标左键单击变黑色
'end']);
这段话有四个方面的信息:
1、对于除listbox之外的其它所有控件类型,当控件处于活动状态(Enable为on)时,任何点击鼠标左键的动作(包括同时按下Ctrl或Shift键),窗口的SelectionType属性都会设置为normal。
2、对于处于活动状态的列表框,双击鼠标左键会把窗口的SelectionType设为open。换言之,列表框是唯一能响应双击鼠标左键的控件类型。
3、对于所有的鼠标右键动作,窗口的SelectionType属性能够正常体现(单击为alt,双击为open)。
4、如果控件处于不活动或禁用状态(Enable属性为inactive或off),鼠标的按键动作能够被窗口SelectionType属性正常体现。
所以,如你所写的代码,对于按钮类型的控件,是不可能捕捉到鼠标的左键双击动作的。要想实现你所说的变色,只有把按钮设置为非活动状态,例如:
|
1 更多文章请关注《万象专栏》 转载请注明出处:https://www.wanxiangsucai.com/read/cv13418
话题推荐: #MATLAB#
#Matlab#
#机器人开发#
#人工智能#
#万象人工智能专栏#
发布评论
全部评论(0)
相关文章 |