gpt4 book ai didi

user-interface - 动态添加字段到 MATLAB GUI?

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

我正在使用 GUIDE 生成 MATLAB GUI,但我想在用户单击按钮时创建字段。有没有办法在回调中动态添加新的 GUI 对象?

最佳答案

实现此目的的一种方法是在开始时创建 GUI 对象,但将其“Visibility”属性设置为“off”。然后,当用户单击按钮时,您将“Visibility”属性设置回“on”。这样,您就不会在 GUI 运行时创建新的 GUI 对象,您只需更改它的哪些部分可见或不可见。

编辑:如果您直到运行时才知道需要多少新的 GUI 对象,这就是您将新的 GUI 对象添加到句柄结构(其中 hFigure 是 GUI 图的句柄):

p = uicontrol(hFigure,'Style','pushbutton','String','test',...
'Callback',@p_Callback); % Including callback, if needed
handles.test = p; % Add p to the "test" field of the handles structure
guidata(hFigure,handles); % Add the new handles structure to the figure

然后您当然必须为新的 GUI 对象编写回调函数(如果它需要的话),它可能看起来像这样:

function p_Callback(hObject,eventdata)
handles = guidata(gcbf); % This gets the handles structure from the figure
...
(make whatever computations/changes to GUI are needed)
...
guidata(gcbf,handles); % This is needed if the handles structure is modified

我在上面的代码中使用的感兴趣的函数是:GUIDATA (用于为 GUI 存储/检索数据)和 GCBF (获取当前正在执行其回调的对象的父图窗句柄)。

关于user-interface - 动态添加字段到 MATLAB GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1093426/

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