在MatlabGUI中单击鼠标清除编辑框
我想在MatlabGUI中有一个“编辑”框,上面写着“这里输入搜索”。 当用户在框内单击时,我希望“此处键入搜索”消失,并给用户一个空的编辑框开始键入在MatlabGUI中单击鼠标清除编辑框,matlab,user-interface,matlab-guide,Matlab,User Interface,Matlab Guide,我想在MatlabGUI中有一个“编辑”框,上面写着“这里输入搜索”。 当用户在框内单击时,我希望“此处键入搜索”消失,并给用户一个空的编辑框开始键入 有什么想法吗?至少在我的系统上,当我使用以下代码设置用户输入框/窗口时 prompt = 'Enter search terms:'; dlg_title = 'My input box'; num_lines = 1; defAns = {'TYPE_SERACH_HERE'}; answer = inputdlg(prompt,
有什么想法吗?至少在我的系统上,当我使用以下代码设置用户输入框/窗口时
prompt = 'Enter search terms:';
dlg_title = 'My input box';
num_lines = 1;
defAns = {'TYPE_SERACH_HERE'};
answer = inputdlg(prompt, dlg_title, num_lines, defAns);
默认文本TYPE\u SEARCH\u HERE
将突出显示,因此我可以开始键入以替换为所需内容
编辑或者,如果您有一个现有的uicontrol
编辑框,您可以执行如下操作:
function hedit = drawbox()
hedit = uicontrol('Style', 'edit',...
'String', 'deafult',...
'Enable', 'inactive',...
'Callback', @print_string,...
'ButtonDownFcn', @clear);
end
function clear(hObj, event) %#ok<INUSD>
set(hObj, 'String', '', 'Enable', 'on');
uicontrol(hObj); % This activates the edit box and
% places the cursor in the box,
% ready for user input.
end
function print_string(hObj, event) %#ok<INUSD>
get(hObj, 'String')
end
函数hedit=drawbox()
hedit=uicontrol('样式','编辑',。。。
'字符串','死亡',。。。
'启用','不活动',。。。
“回调”,@print\u字符串,。。。
“ButtonDownFcn”,清除);
结束
功能清除(hObj,事件)%#正常
设置(hObj,'String','Enable','on');
uicontrol(hObj);%这将激活编辑框并
%将光标放置在框中,
%准备好供用户输入。
结束
函数打印字符串(hObj,事件)%#正常
get(hObj,‘String’)
结束
克里斯,你必须点击uicontrol边框以使按钮关闭。如果您在编辑框内单击,则不会发生此问题。好的,因此我有一个解决此问题的方法,它可以完美地工作
然而,我很沮丧,因为我完全不知道为什么它会起作用
如果有人能解释为什么uicontrol在鼠标左键点击时突出显示文本,那就太好了 Hooplator15,它之所以能工作,是因为编辑文本就像关闭启用时的按钮:
- 如果Enable==“on”(编辑文本启用),则在鼠标按入5像素边框时执行函数_ButtonDownFcn
- 否则,它会在鼠标按下5像素边框或编辑文本(如按钮)时执行