gpt4 book ai didi

matlab - 如何检测文本编辑对象的焦点丢失?

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:09 25 4
gpt4 key购买 nike

这是我第一次尝试在 MATLAB 中创建 GUI。到目前为止,我还没有找到一种方法来检测焦点何时从文本编辑移动到其他对象。我需要这样的功能,这样我就可以“当场”测试用户输入并将文本编辑的背景颜色更改为红色,如果输入的格式不正确的话。

换句话说,如果最终用户能够在文本编辑中写下他的表情,然后按Tab键移动到下一个文本编辑,同时看到红色背景,那将是非常方便的在输入出现问题的情况下进行第一个文本编辑。

我想到了几种检查用户输入的替代方法,但它们不如上面的方便。我该如何实现这样的事情?

最佳答案

当您按 Tab 将焦点从一个可编辑文本框移动到另一个 uicontrol 时对象,callback function将调用可编辑文本框。因此,您只需将用于检查文本和提醒用户问题的代码放入可编辑文本 uicontrol 的回调函数中。

请注意 the documentation声明 uicontrol 的回调也将在这些其他条件下调用:

  • 单击另一个组件、菜单栏或 GUI 的背景。

  • 对于单行可编辑文本框,按 Enter

  • 对于多行可编辑文本框,按 Ctrl+Enter

例如,这是一个非常简单的回调实现,如果字符串是 'yes''no',它将文本背景颜色设置为默认灰度值,如果字符串是其他任何内容,则为红色:

function callback_fcn(hSource, eventData)
if ismember(get(hSource, 'String'), {'yes', 'no'})
set(hSource, 'BackgroundColor', [0.941176 0.941176 0.941176]);
else
set(hSource, 'BackgroundColor', 'r');
end
end

关于matlab - 如何检测文本编辑对象的焦点丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9830207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com