我创建了一个小GUI来操作数据,最近我决定将数据库移动到MySQL服务器上。我创建了一个Java程序来来回传输数据,我开始注意到在国外访问服务器时的延迟。
当您通过命令窗口运行脚本时,Matlab在左下角显示“忙”文本,但在我运行GUI时则不显示。
那么在使用GUI时我怎么知道Matlab是否忙?
提前致谢。
编辑:快速示例。
我在命令窗口(或脚本test.m)中运行
for i = 1:100000
a = i+i;
disp(a);
end
状态栏显示“忙碌”。
当我创建GUI时,使用“Click me”按钮执行完全相同的脚本。状态栏上的忙碌标志不会出现。
为什么这是我能做些什么呢?我希望能够看到我的GUI是否忙碌。
答案 0 :(得分:4)
它在主窗口的状态栏中这样说!
编辑:
所以答案是否定的,现在没有办法(轻松)说出matlab是否忙于做除命令行工作以外的事情。
答案 1 :(得分:3)
您应该可以使用statusbar上Yair Altman的提交MathWorks File Exchange修改主MATLAB窗口的状态栏消息。他在a post on his blog "Undocumented Matlab"中讨论了它的工作原理。
使用此实用程序,即使MATLAB没有自动执行此操作,您也应该能够显示“Busy ...”消息。您的“Click me”按钮回调的代码可能如下所示:
...
statusbar(0, 'Busy...'); %# Set the status message
test; %# Run your function/script
statusbar(0, ''); %# Clear the status message
...
答案 2 :(得分:2)
您可以在GUI本身上添加静态文本,并在计算完成之前/之后将其文本设置为“忙碌”/“空闲”,如果使GUI更加用户友好是关注点。
答案 3 :(得分:2)
可能你在寻找什么:
在命令行中输入任何arbritary代码。
e.g。像
这样的东西asdfasdfasdfasdf
如果GUI例程仍在运行,那么它将显示忙,直到GUi功能结束。只有这样它才能开始执行asdfasdfasdfasdf。
如果Gui已经完成,那么它将立即执行asdfasdfasdfasdf并显示相应的错误消息。
早些时候,当执行Gui-started功能时,所有Matlabs也会显示忙音。自2012年以来,似乎不再是这种情况。
答案 4 :(得分:0)
在GUI中添加静态文本框。在您的计算图标回调中,写下:
set(handle.text,'string','busy')
pause(0.1)
.
.
.
// Your code
.
.
.
pause(0.1)
set(handle.text,'string','done')
答案 5 :(得分:0)
This thread表示可以使用File Exchange entry CmdWinTool完成。如果您下载该文件,您可以使用它来查明MATLAB是否忙于CmdWinTool('isBusy')
。请注意,CmdWinTool在MATLAB使用Java时利用了未记录的功能,因此MathWorks不太可能支持它。