我正在尝试在 Matlab (R2016a) GUI 上创建一个简单的“浏览”按钮。我的代码是这样的:
hd = dialog;
hb = uicontrol('parent',hd,'style','pushbutton','string','browse',...
'callback',@uigetdir);
回调函数uigetdir
有 2 个可选参数STARTPATH, TITLE
。原则上,我可以通过将它们与单元格数组上的函数句柄连接起来将它们传递给我的回调,例如
hd = dialog;
hb = uicontrol('parent',hd,'style','pushbutton','string','browse',...
'callback',{@uigetdir,'myStartPath','myTitle');
无论我的浏览按钮调用是否uigetdir
带有可选参数,它都会崩溃。不同的错误,相同的原因:uicontrol
决定包含 2 个未调用的、奇怪的变量(包含 UI 属性)作为回调函数的参数,并且uigetdir
不知道如何处理它们。
这是否意味着我不能使用uigetdir
(或几乎任何其他内置函数)作为 GUI 中的回调函数?除了写自定义函数,肯定还有解决办法吧?