确定是否使用MATLAB GUI编辑文本框
基本上,我有一个非常复杂的MatlabGUI,用户可以通过editextbox(您可以键入的)添加不同的字符串。问题是我为不同的键盘按钮下压分配了不同的功能,例如“s”和“e”正在使用。每次尝试键入例如“snake”时,都会执行分配给“s”和“e”的函数。是否有任何方法可以确定我在编辑文本框中单击了什么,并且它正在使用->类似于逻辑值,这样我可以通过选中它来阻止按键功能。在回调中,您可以使用确定是否使用MATLAB GUI编辑文本框,matlab,user-interface,textbox,edit,matlab-figure,Matlab,User Interface,Textbox,Edit,Matlab Figure,基本上,我有一个非常复杂的MatlabGUI,用户可以通过editextbox(您可以键入的)添加不同的字符串。问题是我为不同的键盘按钮下压分配了不同的功能,例如“s”和“e”正在使用。每次尝试键入例如“snake”时,都会执行分配给“s”和“e”的函数。是否有任何方法可以确定我在编辑文本框中单击了什么,并且它正在使用->类似于逻辑值,这样我可以通过选中它来阻止按键功能。在回调中,您可以使用gco来获取当前对象。然后,您可以检查这是否是编辑框的图形句柄 fig = figure('WindowK
gco
来获取当前对象。然后,您可以检查这是否是编辑框的图形句柄
fig = figure('WindowKeyPressFcn', @(s,e)keypress());
hedit = uicontrol('Style', 'edit');
function keypress()
if ~isequal(gco, hedit)
disp('Window Key Press')
end
end
另一方面,如果您没有设置全局按键回调(使用
WindowKeyPressFcn
),而是单独设置每个uicontrol
的KeyPressFcn
,只需为编辑框指定不同(或否)KeyPressFcn
就可以了。谢谢您,它成功了!我的按钮回调是全局的。