【问题标题】:Adding a slider removes the toolbar添加滑块会删除工具栏
【发布时间】:2013-12-12 16:41:52
【问题描述】:

我在 Matlab 上遇到了一个奇怪的行为。我想用可变参数绘制一个简单的 3D 曲面。

简单示例:

param = 0.5;
[x,y]=meshgrid(linspace(-1,1,10),linspace(-1,1,10));
z = param*x./y;
surf(x,y,z);

我得到一张经典的 3D 图片:http://i.imgur.com/2KrnWeH.png

我现在尝试在我的图上添加一个滑块来直接控制参数的值:

function test()
    figHandle=figure;
    param = 0.5;
    [x,y]=meshgrid(linspace(-1,1,10),linspace(-1,1,10));
    z = param*x./y;
    surfacePlotted = surf(x,y,z);

    sliderPosition=[10 400 200 20];

    hsl = uicontrol('Style','slider','Min',-2,'Max',2,'SliderStep',[1 1]./(10),'Value',param,'Position',sliderPosition,'Callback',{@updatePlot,surfacePlotted});
end

function updatePlot(hObject,~,eventdata)
    surfacePlotted=eventdata;
    param = get(hObject,'Value');
    x=get(surfacePlotted,'XData');
    y=get(surfacePlotted,'YData');
    z = param*x./y;
    set(surfacePlotted,'ZData',z);
end

我得到了一个不错的滑块,我可以点击它来修改参数:http://i.imgur.com/TqkMSmH.png i.imgur.com/i9xablF.png(第二张图片与幻灯片的其他位置

但是主菜单栏已经不存在了,尤其是“Pan”图标,它允许我在 3D 中操作图形。

我尝试在我的滑块定义之后手动添加它

uicontrol('MenuBar','figure');

我也试过了:

set(figHandle, 'MenuBar', 'figure');

到目前为止没有成功。

有人已经遇到过这个问题并找到了解决方法吗?还是我只是错过了一些简单的东西?

谢谢:)

编辑:编辑图片链接,我放一个来管理它们

【问题讨论】:

  • 顺便说一下,它是工具栏而不是菜单栏。

标签: matlab user-interface 3d slider pan


【解决方案1】:

在 Yair 的网站 (undocumentedmatlab) 中有说明:

uicontrol side-effect: removing figure toolbar

您只需将这一行添加到您的代码中:

set(figHandle,'toolbar','figure');

【讨论】:

  • 谢谢!我看到了链接,但我在 MenuBar 和工具栏之间搞砸了。
猜你喜欢
  • 1970-01-01
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多