взлом

Открытая медицинская библиотека

Статьи и лекции по медицине ✚ Библиотека студента-медика ✚ Болезни и способы их лечения.

Хирургия Set( gcf, 'Color', 'red' )
просмотров - 196

Все графические объекты ( они сами являются окнами в смысле операционной системы Windows ) на поверхности графического окна создаются по иерархичнское схеме "родитель - потомство". Родительским окном для элементов управления служит само графическое окно MATLABа. С учётом введённого понятия становится удобным применение для поиска описателœей графических объектов функции findobj:

hArray = findobj( hParent,'имя_свойства',значение_свойства)

Эта функция отыскивает всœе объекты, являющиеся потомками объекта с описателœем hParent и имеющие для свойства 'имя_свойства' значение, указанное в параметре функции значение_свойства. Она возвращает их описатели в массиве hArray. Этой функцией широко пользуются для доступа к описателям конкретных элементов управления, которые являются потомками графического окна MATLABа, так что вместо hParent можно использовать gcf. В качестве удобного для поиска свойства часто используется свойство 'Tag' ( ярлык ), значением которого является произвольно присваиваемый объекту ( элементу управления ) текстовый идентификатор. В случае если мы разным объектам присвоим разные идентификаторы в качестве значений свойства 'Tag', то не будет проблем с поиском описателœей этих объектов.

А теперь создадим для примера командную кнопку на поверхности графического окна:

hF1 = figure;

uicontrol( hF1, 'Style','pushbutton', 'String', 'MyButton1',…

'Position', [ 10 10 70 30 ] );

Любой элемент управления создаётся функцией uicontrol ( имя функции, создающей объект, всœегда совпадает с именем этого объекта; такие функции в программировании принято называть конструкторами ), у которой первым параметром идёт описатель родительского окна, а затем по очереди перечисляются имена и значения свойств, которым мы явно придаём собственные значения ( а остальные, менее важные для нас свойства получают значения по умолчанию ). В итоге получается следующее графическое окно

в котором явственно видна кнопка. Эта кнопка визуально действует безупречно - с помощью левой клавиши мыши она нажимается ( виден процесс заглубления поверхности кнопки ) и отжимается, но при этом не происходит никаикх действий в качестве последствий нажатия. Это происходит потому, что мы ещё не приписали этой кнрпке никаких функций, выполнение которых должно быть реакцией на нажатие.

В функции uicontrol, создающей элемент управления, самым важным параметром после описателя родительского окна является свойство 'Style', так как оно задаёт тип управляющего элемента. Задав для этого свойства значение 'pushbutton', мы создали именно кнопку ( а не редактируемое поле, или что-нибудь ещё ).