如何在其他数据之上获得waitbar?

时间:2014-05-23 12:55:00

标签: matlab matlab-figure

您好我在脚本readAndInitDatabase()中使用waitbar,顾名思义是读取并初始化图像数据库以供进一步处理。

问题是我在这个函数中使用了imshow(),用于显示正在读取的图像,这导致等待条隐藏在数字后面我怎么能导致不发生这种情况?

我尝试使用set命令在每次迭代时设置条形位置,但这完全改变了我不想要的尺寸。这是设置位置的代码

parentFolder = ['E:\' ...
               'Hand-Gesture\Project\Project_0\' ...
               'Images\Database'];
parentFolder = strcat(parentFolder(1:end));
chars = 'abcdefghijklmnopqrstuvwxyz';
h = waitbar(0,'Reading Database Images');
for i = 1:length(chars)
    letter = chars(i);
    folder = strcat(parentFolder,'\',letter);
    read_folder(folder);
    waitbar(i/length(chars));
    % this code sets the position of waitbar at every iteration 
    screenSize = get(0,'ScreenSize');
    pointsPerPixel = 72/get(0,'ScreenPixelsPerInch');
    width = 360 * pointsPerPixel;
    height = 75 * pointsPerPixel;
    pos = [screenSize(3)/2-width/2 screenSize(4)/2-height/2 width height];   
    set(h,'Position',pos);
end
close(h);

我该怎么做?如果可以,我想避免使用set()命令来执行此任务。

1 个答案:

答案 0 :(得分:0)

尝试

h = waitbar(0,'Reading Database Images','WindowStyle','modal');

figure property窗口样式设置为'modal'会使图形保持在前景中并消除菜单栏(无论如何都不在等待栏中)。