【问题标题】:Change panel property in GUI在 GUI 中更改面板属性
【发布时间】:2011-08-08 16:56:17
【问题描述】:

我尝试了很多东西,并通过 google 和 stackoverflow 查找了数以千计的关键字,但实际上我总是落入相同(对我来说没用)的解决方案。

这是我的问题:

我有一个带有 uibuttongroup“Youpi”的 GUI,带有两个单选按钮“visible”和“invi”。 我还有一个 uipanel “Tralala”。

我创建以下代码:

function Youpi_SelectionChangeFcn(hObject,eventdata)
switch get(eventdata.NewValue,'Tag') % Get Tag of selected object.
    case 'visible'
        set(handles.Tralala, 'visible', 'on');
    case 'invi'
        set(handles.Tralala, 'visible', 'off');
    otherwise
        % Code for when there is no match.        
end

它不起作用,我总是收到相同的错误消息(见下文)。 我做了这两个测试来找出问题出在哪里: _我通过 disp 函数改变了大小写:当我切换我的两个单选按钮时,消息正确显示。它不是来自 SelectionChangeFcn 函数。 _在第一个名为“GUI_OpeningFcn”的函数中,我输入set(handles.Tralala, 'visible', 'off');,它工作正常(例如,如果我运行GUI,我看不到面板)。

您知道为什么面板句柄会从一个功能消失到另一个功能吗?

这是错误信息:

??? Undefined variable "Tralala" or class "handles.Tralala".

Error in ==> MaccorGUI>Youpi_SelectionChangeFcn at 272
        set(handles.Tralala, 'visible', 'on');

Error in ==> hgfeval at 63
        feval(fcn{1},varargin{:},fcn{2:end});

Error in ==> uitools.uibuttongroup.childAddedCbk>manageButtons at 80
    hgfeval(cbk, source, evdata);

??? Error while evaluating uicontrol Callback

请帮我找到解决办法。

谢谢。

【问题讨论】:

    标签: user-interface matlab panel visible


    【解决方案1】:

    我创建了一个带有按钮的组面板,每次我是其中一个按钮选择一个图像他m'aficher每个按钮都有一个图像 谢谢你帮我找到源代码 我正在做 uipanel4_SelectionChangeFcn 函数(hObject、EVENTDATA、句柄) % hObject handle To uipanel4 中选中的对象 % 具有以下 EVENTDATA 结构字段(参见 UIBUTTONGROUP) % EventName: string 'SelectionChanged' (只读) % OldValue:先前选择的对象的句柄,如果没有选择,则为空 WAS % NewValue: 当前选中对象的句柄 % 使用句柄和用户数据处理结构(参见 GUIDAT) 如果 RadioButton1 == get (handles.radiobutton1, 'value', 1) 设置(handles.axes4,'因为') 否则 radioButton2 == get (handles.radiobutton2, 'value', 1) 设置(handles.axes4 'man')

    【讨论】:

      【解决方案2】:

      好的,我找到了解决方案。我不认为它是最好的,但至少它有效。

      在“切换”之前我添加了以下命令:

      a = guidata(get(hObject,'parent'));
      

      在开关中,我使用“a”而不是“handles”。

      注意:它也适用于 guihandles(您可以通过这种方式访问​​ handles.output)

      【讨论】:

        【解决方案3】:

        您需要在选择更改函数定义中添加句柄

        function Youpi_SelectionChangeFcn(hObject,eventdata, handles)
        

        【讨论】:

        • 感谢您的回答 :) 。但是我仍然收到类似的错误,只有第一行更改:??? Input argument "handles" is undefined. 这是寻找解决方案的开始。如果我发现了,我会及时通知你。
        • 我有 R2010a 。在网上,我看到有人从 2006 年开始在进行回调 SelectionChangeFcn 时自动出现“句柄”输入。所以我删除了我的功能以右键单击我的按钮组并回调>> SelectionChangeFcn,而不是手动执行。这次出现了“句柄”输入。但是,在调试器中,一旦单击其中一个单选按钮,我就只有 hObject 和 eventdata。
        • @Wlikotae:奇怪,不知道发生了什么。无论如何,我看到你找到了解决办法。
        猜你喜欢
        • 1970-01-01
        • 2017-03-13
        • 2014-06-03
        • 2021-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-05
        相关资源
        最近更新 更多