uicontextmenu недоступно при использовании pcolor и contourf (MATLAB R2014b) - PullRequest
0 голосов
/ 14 сентября 2018

Я не особенно разбираюсь в MATLAB, так что это может быть глупый вопрос, но я был бы признателен за любую помощь, которая может быть оказана.

У меня есть некоторый код, который создает некоторые оси, присваивает uicontextmenu указанным осям, а затем строит график выбора пользователя по осям.Доступ к uicontextmenu можно получить, щелкнув правой кнопкой мыши по графикам (как и должно быть) в каждом случае графика, который требуется ЗА ИСКЛЮЧЕНИЕМ для pcolor и contourf.С чего бы это?Можно ли как-нибудь обойти это?

Благодаря обширной отладке я обнаружил, что uicontextmenu доступно до тех пор, пока не будут вызваны функции pcolor (или contourf), а затем исчезнет.Чего мне не хватает?

РЕДАКТИРОВАТЬ: По запросу, пример кода ниже.Если вы используете pcolor, uicontextmenu не появится, а если вы используете plot, то он появится.Я думаю, что это как-то связано с данными, которые выделяет курсор.Если ваш курсор щелкнет правой кнопкой мыши на графике данных, ничего не появится в обоих.Но почему это?

axes;

stuff = uicontextmenu('Parent',ancestor(axes,'figure'));
stuffm = uimenu('Parent',stuff,'Label','Change something');
set(axes,'uicontextmenu',stuff);

x = randn(10);
y1=randn(10,1);
y2=randn(10,1);


plot(y1,y2)
%pcolor(x)

1 Ответ

0 голосов
/ 14 сентября 2018

Функция pcolor создает графический объект surface, который имеет собственное свойство uicontextmenu.Вы должны установить его после того, как pcolor вернет дескриптор поверхности:

h= pcolor(x);
set(h,'uicontextmenu',stuff);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...