Woher weiß ich, ob Matlab bei der Verwendung von GUIs beschäftigt ist?

8

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.

    
Stefan Gretar 22.01.2012, 12:36
quelle

6 Antworten

3

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%     
gnovice 23.01.2012, 16:00
quelle
4

So steht es in der Statusleiste des Hauptfensters!

BEARBEITEN:
Also die Antwort ist nein, im Moment gibt es keine Möglichkeit (einfach) zu sagen, wenn Matlab beschäftigt ist etwas anderes als ein Kommandozeilen-Job zu tun.

    
Ali 22.01.2012 15:05
quelle
2

Sie könnten einen statischen Text auf der GUI selbst hinzufügen und den Text vor / nach den Berechnungen auf "Beschäftigt" / "Leerlauf" setzen, wenn Sie die GUI benutzerfreundlicher gestalten möchten.

    
vishalvr9 02.11.2012 10:37
quelle
2

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.

    
hemmi7 06.12.2012 15:40
quelle
0

Fügen Sie Ihrer GUI ein statisches Textfeld hinzu. Schreiben Sie dies in Ihrem Callback für das Symbol:

%Vor%     
hamid 07.06.2013 20:05
quelle
0

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.

    
JoeV 18.08.2015 14:39
quelle

Tags und Links