【问题标题】:How can I add waitbar in the current GUI window MATLAB?如何在当前的 GUI 窗口 MATLAB 中添加等待栏?
【发布时间】:2017-07-06 18:03:45
【问题描述】:

我有一个 GUI 图,其中包含一些按钮,我想在放置按钮的同一个 GUI 窗口上显示等待栏,我尝试了不同的解决方案但徒劳无功。例如,当用户单击按钮时,它开始在图的左下角显示等待栏。

【问题讨论】:

  • 你能展示你已经尝试过的东西吗?因为在你的 GUI 中用一个矩形和一些文本来制作一个自定义的等待栏功能似乎更容易。

标签: matlab


【解决方案1】:

您可以尝试在图中添加一个 java 等待栏。

把这个放在OpeningFcn中

PB=javaObjectEDT(javax.swing.JProgressBar);
javacomponent(PB,[10,10,200,20],gcf); %put at bottom part of the current figure
set(handles.output.Children(1),'Tag','first_bar'); %make sure you can find it back

在任何函数的回调中,您可以使用以下代码将 bar 设置为 0 到 100 之间的值:

h=findobj(handles.output.Children,'Tag','first_bar');
set(h.JavaPeer,'Value',rand(1)*100)

您可以像在 Matlab 中使用任何 GUI 对象一样使其可见或不可见

h=findobj(handles.output.Children,'Tag','first_bar');
set(h,'visible','off');

您可以在此处找到有关 JProgressBar 的详细信息。例如,使用这个你会得到一个带有进度条的字符串。

h=findobj(handles.output.Children,'Tag','first_bar');
set(h.JavaPeer,'StringPainted',1)

【讨论】:

  • 非常感谢这段代码是我所需要的,但是handles.output.Children(1).Visible='off';不会使进度条不可见
  • 也许你有不同版本的matlab。我使用set 输入了一个备用代码。
  • 我正在使用 MATLAB 2017。
  • 新答案对您有用吗?我在 2016b 上测试过
  • 是的,它对我有用。我可以让这个进度条像 h=findobj(handles.output.Children,'Tag','first_bar'); set(h,'不确定',1,'SrtringPainted',0);反之亦然?我只添加了一个进度条,我有两个按钮,可以从 Inderminate 状态更改为 Determinate 状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-15
  • 2015-03-05
  • 1970-01-01
  • 2012-07-19
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多