Изменить свойство панели в графическом интерфейсе - PullRequest
0 голосов
/ 19 апреля 2011

Я перепробовал много вещей и посмотрел с тысячами ключевых слов через google и stackoverflow, и я буквально всегда падаю на одни и те же (бесполезные для меня) решения.

Вот моя проблема:

Iиметь графический интерфейс пользователя с uibuttongroup "Youpi" с двумя переключателями "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');, и она работает правильно (например, я не вижу панель, если я запускаю графический интерфейс).

Знаете ли вы, почему дескриптор панели исчезаетот одной функции к другой?

Вот сообщение об ошибке:

??? 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

Пожалуйста, помогите мне найти решение.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

Хорошо, я нашел решение. Я не думаю, что это лучший, но, по крайней мере, он работает.

Перед «переключателем» я добавил следующую команду:

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

А в переключателе вместо «ручек» я использую «а».

примечание: работает также с guihandles (вы можете получить доступ к handles.output таким образом)

0 голосов
/ 04 мая 2011

Я создал групповую панель с кнопкой каждый раз, когда одна из кнопок выбирает изображение, которое у него есть, каждая кнопка имеет изображение спасибо за помощь в поиске исходного кода Я делаю это Функция uipanel4_SelectionChangeFcn (hObject, EVENTDATA, дескрипторы) Дескриптор% hObject To для выбранного объекта в uipanel4 % Со следующими полями структуры EVENTDATA (см. UIBUTTONGROUP) % EventName: строка 'SelectionChanged' (только для чтения) % OldValue: дескриптор ранее выбранного объекта или пустой, если ни один не выбран. % NewValue: дескриптор текущего выбранного объекта % обрабатывает структуру с дескриптором и пользовательскими данными (см. GUIDAT) if RadioButton1 == get (handles.radiobutton1, 'value', 1) Set (handles.axes4, 'потому что') иначе radioButton2 == get (handles.radiobutton2, 'value', 1) Набор (handles.axes4 'man')

0 голосов
/ 19 апреля 2011

Вам нужно добавить ручки к определению функции изменения выбора

function Youpi_SelectionChangeFcn(hObject,eventdata, handles)
...