Ich habe eine kleine GUI erstellt, um Daten zu manipulieren und kürzlich habe ich beschlossen, die Datenbank auf einen MySQL-Server zu verschieben. Ich habe ein Java-Programm erstellt, um die Daten hin und her zu bringen, und ich habe die Verzögerung bemerkt, als ich die Server im Ausland betrete.
Wenn Sie Skripte über das Befehlsfenster ausführen, zeigt Matlab in der unteren linken Ecke einen "beschäftigt" Text an, aber nicht, wenn ich GUIs ausführe.
Woher weiß ich also, ob Matlab mit GUIs beschäftigt ist?
Vielen Dank im Voraus.
Bearbeiten: Schnelles Beispiel.
Ich laufe im Befehlsfenster (oder einem Skript test.m)
%Vor%Die Statusleiste zeigt "Beschäftigt" an.
Wenn ich eine GUI mit dem Button "Klick mich" erstelle, wird genau das gleiche Skript ausgeführt. Das Besetztzeichen in der Statusleiste wird nicht angezeigt.
Warum ist das und was kann ich dagegen tun? Ich möchte sehen können, ob meine GUI beschäftigt ist oder nicht.
Sie können die Statusleistenmeldung des MATLAB-Hauptfensters mithilfe der Statusleiste von Yair Altman auf der MathWorks Dateiaustausch . Er erklärt, wie es in einem Beitrag in seinem Blog "Undocumented Matlab" funktioniert .
Mit diesem Dienstprogramm sollten Sie in der Lage sein, eine "Beschäftigt ..." Nachricht zu erstellen, selbst wenn MATLAB dies nicht automatisch tut. Ihr Code für den Callback-Button "Click me" würde wahrscheinlich in etwa so aussehen:
%Vor%Wahrscheinlich, wonach Sie suchen:
Geben Sie einen beliebigen Arbritary-Code in die Befehlszeile ein.
z.B. etwas wie
asdfasdfasdfasdf
Wenn die GUI-Routine noch läuft, wird sie busy anzeigen, bis die GUi-Funktion beendet ist. Nur dann kann asdfasdfasdfasdf ausgeführt werden.
Wenn der Gui bereits fertig ist, wird er asdfasdfasdfasdf sofort ausführen und die entsprechende Fehlermeldung anzeigen.
Früher haben alle Matlabs auch die Besetztmeldung angezeigt, wenn eine Gui-gestartete Funktion ausgeführt wird. Seit 2012 scheint dies nicht mehr der Fall zu sein.
Dieser Thread Über bei MathWorks sagt, es kann mit dem Dateiaustausch Eintrag CmdWinTool getan werden. Wenn Sie diese Datei herunterladen, können Sie sie verwenden, um herauszufinden, ob MATLAB mit CmdWinTool('isBusy')
beschäftigt ist. Beachten Sie, dass CmdWinTool den Vorteil von undokumentierten Funktionen in MATLABs Verwendung von Java nutzt, sodass MathWorks dies wahrscheinlich nicht unterstützt.
Tags und Links user-interface matlab