我在两个不同的文件中有两个无花果。通过单击第一个无花果上的按钮,我想显示第二个...如何做到这一点?是否可以?
如果是,那么如何在两个数字之间交换数据?
我在两个不同的文件中有两个无花果。通过单击第一个无花果上的按钮,我想显示第二个...如何做到这一点?是否可以?
如果是,那么如何在两个数字之间交换数据?
有多种方法可以在 GUI 之间共享数据。通常,您需要以某种方式使来自一个 GUI 的图形句柄对另一个 GUI 可用,以便它可以获取/设置某些对象属性。这是一个非常简单的示例,其中涉及一个 GUI 创建另一个 GUI 并向其传递对象句柄:
function gui_one
hFigure = figure('Pos',[200 200 120 70],... %# Make a new figure
'MenuBar','none');
hEdit = uicontrol('Style','edit',... %# Make an editable text box
'Parent',hFigure,...
'Pos',[10 45 100 15]);
hButton = uicontrol('Style','push',... %# Make a push button
'Parent',hFigure,...
'Pos',[10 10 100 25],...
'String','Open new figure',...
'Callback',@open_gui_two);
%#---Nested functions below---
function open_gui_two(hObject,eventData)
gui_two(hEdit); %# Pass handle of editable text box to gui_two
end
end
%#---Subfunctions below---
function gui_two(hEdit)
displayStr = get(hEdit,'String'); %# Get the editable text from gui_one
set(hEdit,'String',''); %# Clear the editable text from gui_one
hFigure = figure('Pos',[400 200 120 70],... %# Make a new figure
'MenuBar','none');
hText = uicontrol('Style','text',... %# Make a static text box
'Parent',hFigure,...
'Pos',[10 27 100 15],...
'String',displayStr);
end
将上述代码保存到 m 文件后,您可以通过键入创建第一个 GUI gui_one
。您将看到一个带有可编辑文本框和按钮的小图形窗口。如果你在文本框中输入一些东西,然后点击按钮,第二个 GUI 将出现在它旁边。第二个 GUI 使用从第一个 GUI 传递给它的可编辑文本框的句柄来获取文本字符串、显示它并从第一个 GUI 清除该字符串。
这只是一个简单的例子。有关在 MATLAB 中编程 GUI 的更多信息,请查看MathWorks 在线文档以及此 SO 问题答案中的链接。