gpt4 book ai didi

matlab - 如何设置 Matlab waitbar 大小?

转载 作者:行者123 更新时间:2023-12-02 03:16:37 26 4
gpt4 key购买 nike

这些是基本问题,但我无法在 matlab 文档或谷歌中找到解决方案。

  • 我的等待栏有一个取消按钮和一个两行文本,但文本无法放入等待栏。我只需要一些自动调整或增加等待栏高度。

  • 为什么我无法通过单击“x”关闭等待栏?我可以关闭它的唯一方法是键入 delete(h)。只有在我添加了“取消”按钮后才会发生这种情况。

创建等待栏:

h = waitbar(0,'Please wait...','CreateCancelBtn',...
'setappdata(gcbf,''canceling'',1)',...
'Position',[100 100 200 200]); % Position' does not work

在循环内:

    str = sprintf('Noise: %.2f (%d/%d). Planes: %.2f (%d/%d).\nOveral: %.1f%%',...
noiseAmp,noiseId,noiseCount,slice,sliceId,sliceCount,100*perc);
waitbar(perc,h, str);

最佳答案

您无法使用取消按钮删除 waitbar,因为您设置了一个覆盖典型行为的 CreateCancelBtn 回调,并且在您的回调内部 't 删除它以使其保留。

您可以更新回调以设置应用程序数据删除它。

h = waitbar(0,'Please wait...','CreateCancelBtn',...
'setappdata(gcbf,''canceling'',1); delete(gcbf);')

就改变位置而言,它似乎在您的构造函数中不起作用,但您可以在创建 waitbar 后更改它。

set(h, 'Position', [100 100 200 200])

请注意,这不会更改waitbar 的所有内容 的位置。这是因为 MATLAB 选择假定 waitbar 的大小永远不会改变,因此他们使用 Pixel 单位来定义所有组件的位置。

不过,有一个小技巧可以让这项工作成功。您想要首先(在调整大小之前)将 waitbar 的所有组件的 Units 更改为 Normalized。然后,当您调整它的大小时,所有组件都会相应地移动。

h = waitbar(0, 'Please Wait', 'CreateCancelBtn', 'disp(h)');
set(findall(h), 'Units', 'Normalized')
set(h, 'Units', 'Pixels', 'Position', [100 100 200 200])

关于matlab - 如何设置 Matlab waitbar 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36668561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com