Add context menu when LEFT click on button (app design)
古いコメントを表示
Hi!
I am trying to add kind of a context menu after LEFT pushing a button on a specific tab of my app, but it seems not to be allowed. Suggestion for a workaround?
function ButtonAddPlotPushed(app, event)
cm = uicontextmenu(app.UIFigure); %
m1 = uimenu(cm,'Text','Menu1');
m2 = uimenu(cm,'Text','Menu2');
m3 = uimenu(cm,'Text','Menu3');
pos = app.ButtonAddPlot.Position(1:2)
set(cm,'Position',pos);
set(cm,'Visible','on');
end
My GUI is something like this:

I need something like this:

I can't use a toolbar instead, because I need it just below the "Output Visualization" tab, while the toolbar is added on the top of the app:

3 件のコメント
Veronica Taurino
2021 年 6 月 21 日
Veronica Taurino
2021 年 6 月 21 日
Veronica Taurino
2021 年 6 月 28 日
回答 (2 件)
Vimal Rathod
2021 年 6 月 23 日
0 投票
Hi,
You could try setting up 'HitTest' property of the Image to 'off' that way your UI could register its clicks and hopefully you could call the contextmenu.
Following link contains question similar to yours
1 件のコメント
Veronica Taurino
2021 年 6 月 28 日
編集済み: Veronica Taurino
2021 年 6 月 29 日
This work for me, hope it helps.
properties (Access = private)
cm % Description
end
function startupFcn(app)
% Create ContextMenu
app.cm.ContextMenu = uicontextmenu(app.UIFigure);
% Create Menu1
app.cm.Menu1 = uimenu(app.cm.ContextMenu);
app.cm.Menu1.Text = 'menu1';
% Create Menu2
app.cm.Menu2 = uimenu(app.cm.ContextMenu);
app.cm.Menu2.Text = 'menu2';
end
function ButtonPushed(app, event)
open(app.cm.ContextMenu ,event.Source.Position([1 2]))
end
Best JC
カテゴリ
ヘルプ センター および File Exchange で Interactive Control and Callbacks についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



