Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


—в€зывание контекстного меню с объектом




Ћюбой объект, размещенный в окне приложени€, имеет свойство UIContextMenu, значением которого может €вл€тьс€ указатель на имеющеес€ контекстное меню. ƒл€ того чтобы созданный объект, т. е. лини€ графика, обладал контекстным меню, следует установить свойству UIContextMenu значение указател€ на меню cmLine, содержащеес€ в структуре handles. ѕостроение линии в приложении myguiпроизводитс€ или при нажатии пользователем кнопки ѕостроить, или при выборе пункта ѕостроить меню √рафик. ѕрисвойте свойству линии UIContextMenu требуемое значение во всех блоках ћ-файла, св€занного с mygui, которые отвечают за отображение графика функции(листинг 8).

Ћистинг 13. —в€зывание контекстного меню с линией

handles.line = plot (x, у);

guidata(gcbo, handles);

% —в€зывание контекстного меню cmLine с линией графика

set(handles.line, 'UIContextMenu', handles.cmLine)

«апустите приложение mygui, постройте линию любым из доступных способов и убедитесь, что щелчок правой кнопкой мыши по линии приводит к по€влению контекстного меню с пунктами синий, красный, зеленый. ¬ыбор пунктов не приводит к изменению цвета линии, очевидно, что следует запрограммировать событие Callback каждого пункта.

ѕрограммирование контекстного меню

ќбработка событий Callback пунктов контекстного меню производитс€ аналогично программированию меню приложени€. ”становите в редакторе меню дл€ пунктов cmLineBlue, cmLineRed, cmLineGreen соответственно вызовы:

mygui('cmLineBlue_Callback',gcbo,[ ],guidata(gcbo))

mygui('cmLineRed_Callback',gcbo,[],guidata(gcbo)) mygui('cmLineGreen_Callback',gcbo,[],guidata(gcbo))

а в файле mygui.m опишите данные подфункции в соответствии с листингом 14.

Ћистинг 14. ѕрограммирование контекстного меню

function cmLineBlue_Callback(hObject, eventdata, handles)

%ѕользователь выбрал синий цвет линии в контекстном меню

set(handles.line,'Color', 'b')

function cmLineRed_Callback(hObject, eventdata, handles)

% ѕользователь выбрал красный цвет линии в контекстном меню

set(handles.line,'Color', 'r')

function cmLineGreen_Callback(hObject, eventdata, handles)

% ѕользователь выбрал зеленый цвет линии в контекстном меню

set(handles.line,'Color', 'g')

«апрограммированное и св€занное с линией контекстное меню разрешает быстрый доступ пользовател€ к цвету линии. ќсталось обеспечить согласованную работу контекстного меню со списком ÷вет линии с именем pmColor. ¬ыбор цвета из меню должен приводить не только к изменению цвета линии, но и к по€влению соответствующей строки в раскрывающемс€ списке. ¬ каждую подфункцию обработки событи€ Callback пункта контекстного меню следует добавить операторы, устанавливающие нужное значение (1, 2 или 3) свойства valueраскрывающегос€ списка (листинг 15).

Ћистинг 15. —огласованна€ работа меню и списка выбора цвета

function cmLineBlue_Callback(hObject, eventdata, handles)

%ѕользователь выбрал синий цвет линии в контекстном меню

set(handles.line,'Color', 'b')

set(handles.pmColor, 'Value', 1)

function cmLineRed_Callback(hObject, eventdata, handles)

% ѕользователь выбрал красный цвет линии в контекстном меню

set(handles.line,'Color', 'r')

set(handles.pmColor, 'Value', 2)

function cmLineGreen_Callback(hObject, eventdata, handles)

% ѕользователь выбрал зеленый цвет линии в контекстном меню

set(handles.line,'Color', 'g')

set(handles.pmColor, 'Value', 3)





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-07; ћы поможем в написании ваших работ!; просмотров: 478 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ћучша€ месть Ц огромный успех. © ‘рэнк —инатра
==> читать все изречени€...

2056 - | 1936 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.008 с.