|
|
beim starten der gui 'Bitte warten...' |
|
Gly |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.01.2011, 10:07
Titel: beim starten der gui 'Bitte warten...'
|
|
Ich wünsche zuerst allen einen guten morgen
Ich habe eine GUI programmiert und davon eine .exe Datei erstellt, die beim starten sehr lange braucht.
Ich möchte gerne eine Meldung während der GUI startet einbauen. Wie z.B 'Bitte warten...Das Program startet gleich!' . Damit man nicht 1000 mal auf die Anwendungsdatei klickt, sondern wartet bis die Oberfläche erscheint.
'Tutorial: Verwendung von WAITBAR im eigenen Code.' war sehr hilfreich .
Ich habe es erst in der Funktion OpeningFnc probiert. Es hat nicht funktioniert.
'function varargout = Beispiel (varargin)' ist die richtige Stelle glaube ich aber wie? Hier wird ja GUI Initialisiert und viele Unterfunktionen werden hier von Matlab-GUI aufgerufen.
Kann mir jemand helfen?
Ich bin dankbar für jede Hilfe
Gruß
Gül
|
|
|
|
|
Gly |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.01.2011, 11:33
Titel:
|
|
Ist es eine blöde oder schwere Frage gewesen?
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 19.01.2011, 13:12
Titel:
|
|
Hallo
du kannst auch einfach MSGBOX verwenden
z.b. so:
PS: Bitte übe Geduld aus, Pushen von Threads ist nur nach 24 Stunden erlaubt.
|
|
|
Gly |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.01.2011, 13:31
Titel:
|
|
Hallo denny,
danke für die Antwort. Es ist schön zu wissen, dass ich hier nicht alleine bin.
ich habe bis jetzt alles probiert! Es ist leider nicht so einfach!!!!
Ich glaube, ich muss in der function varargout = Beispiel(varargin) was einbauen, damit es überhaupt funktioniert.
Mit Hilfe Tic Toc habe ich raus gefunden dass der GUI während Initialisierung 10 mal Unterfunktionen aufruft.
Elapsed time is 0.027650 seconds.
Elapsed time is 0.029754 seconds.
Elapsed time is 0.000600 seconds.
Elapsed time is 0.001089 seconds.
Elapsed time is 0.000864 seconds.
Elapsed time is 0.017190 seconds.
Elapsed time is 0.000624 seconds.
Elapsed time is 0.000505 seconds.
Elapsed time is 0.000519 seconds.
Elapsed time is 2.543789 seconds.
Also dass heißt, mein msgbox oder figure...oder dialogbox 10 mal ausgegeben wird. Es muss nur 1 mal ausgegeben werden!
Hast du dafür eine Antwort vielleicht?
Grüße
Gül
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 19.01.2011, 13:53
Titel:
|
|
Hallo
mir ist deine Programmstruktur komplett unklar,
Welche Funktion ist Hauptfunktion?
Hast du GUI über GUIDE erstellt? Verwendest du automatisch generierten Code von GUIDE?
|
|
|
Gly |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.01.2011, 14:12
Titel:
|
|
Sorry, ich bin bisschen durcheinander. Ich erzähle mal von vorne ...
Ich habe GUi über GUIDE erstellt. Es ist eine Bedienungsoberfläche.
Dafür habe ich automatisch generierten Code von GUIDE verwendet.
Auf der Oberfläche habe ich Buttons, popupmenü usw. stehen. Es funktioniert sehr gut. Davon habe ich mit Hilfe mcc -e ... die .exe Datei erstellt.
Das ist ja auch kein Problem.
Das Problem ist nur wenn ich die .exe Datei anklicke, dauert es soooo lange bis die Benutzeroberfläche erscheint! (Start der Anwendungsdatei)
Deswegen dachte ich dass ich den Benutzer informiere, damit er weiß dass der Anwendungsprogramm startet und dass er bisschen warten muss!!! z.B Splashscreen wäre auch eine Möglichkeit!
Ich hoffe, dass es jetzt verständlich genug ist.
Danke nochmal.
|
|
|
Gly |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.01.2011, 15:14
Titel:
|
|
Hallo,
ich habe die Lösung gefunden
danke!
Falls wenn jemand wissen will, wie sowas geht, einfach hier mich fragen.
Gruß
Gül
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 19.01.2011, 15:23
Titel:
|
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 19.01.2011, 19:09
Titel:
|
|
|
|
|
Hey,
ja das würde mich in der tat auch interessieren. Denn du schreibst, dass du den Compiler benutzt hast. Ich finde es nämlich ziemlich nervig wenn man je nach Größe der exe-Datei auch schonmal ne Minute warten muss bis das Programm endlich beginnt. Soweit ich weiß liegt das aber daran, dass erst eine abgespeckte Version von Matlab (mcr) in den Arbeitsspeicher geladen wird. Und diesen Vorgang kann man nicht wirklich beschleunigen...
Da ich ebenfalls zu beginn ein Splashscreen benutze wird dieses leider erst dargestellt nachdem die mcr geladen ist (also nach ner Minute oder so... was vom Prinzip her auch logisch ist).
Zudem musste ich feststellen, dass die hohe Zeit erst dadurch zustande gekommen ist, nachdem ich viele Dateien (.mat,.jpg, etc) beim kompilieren hinzugefügt habe, die ich vll doch besser wieder extern speichern und aufrufen sollte. Denn bevor ich das gemacht habe startete die exe nach etwa 30 s (natürlich auf dem gleichen Rechner)
MfG Marco
|
|
|
Gly |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.01.2011, 09:15
Titel:
|
|
Hallo Marco,
es freut mich,dass ich hier auch mal jemanden helfen kann. Ich bin wirklich froh, dass diese Seite existiert.
Aber du wirst dich wegen der Lösung entweder sehr ärgern, weil es so einfach ist, oder dich kaputt lachen...Ich hoffe aber,dass meine Lösung dir weiter hilft.
Also öffne zuerst eine Matlab Fenster und speichere es unter irgend eine Name. 'z.B Waitbar_initialisirung.m'
Dann:
und das war's!!!
Fast wenn du noch fragen hast, stehe ich gerne zur Verfügung.
Gruß
Gül
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 20.01.2011, 11:16
Titel:
|
|
Hey,
ja so in der Art habe ich das auch gemacht. Nur hatte ich zuvor einige Dateien beim Kompilieren hinzugefügt, die nicht hätten sein müssen, sodass beim Starten der exe ziemlich viel geladen werden musste... Ich habe nun nur das nötigste hinzugefügt und somit startet die exe auch recht zügig (unter 10 s). Also wars mein Fehler bei der Kompilierung.
Eine Sache ist mir dennoch aufgefallen. Starte ich die exe wird ja erst die mcr geladen und das wohl mit vollem Umfang. Betrachte ich den Taskmanager werden gut 200 MB in den Arbeitsspeicher geladen. Dieser Zusatand ist aber nicht von dauer. Soll heißen, dass dieser zwischen 20 und gut 200 MB variiert. Im enteffekt ist mir das aufgefallen, als ich das Programm offen hatte und in einem anderen Programm am Arbeiten war. Mitmal rutschte die Speicherauslastung von gut 200 auf 20 MB runter. Muss man das verstehen?
MfG Marco
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|