WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Default Pfad in GUI einrichten

 

schlierfmi
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 14.03.12
Wohnort: München
Version: R2011a
     Beitrag Verfasst am: 27.06.2012, 21:59     Titel: Default Pfad in GUI einrichten
  Antworten mit Zitat      
Servus liebe Matlab-Gemeinde!

ich habe ein Programm mit Hilfe von GUI erstellt.
Momentan wählt der Benutzer den Ort eines anzusteuernden Programmes, das von Matlab angesteuert wird von Hand aus.

folgende Ziele hätte ich:
-Der Standard(Default)-Pfad (Der Pfad der als Standard beim Start des Programmes verwendet wird) sollte das Verzeichnis sein, in dem sich mein eigenes Programm befindet. D.h. das Programm soll seinen eigenen Pfad als Default-Pfad auslesen.
- Dieser Default-Pfad sollte auf der Benutzeroberfläche angezeigt werden. Momentan verwende ich in GUI eine "editbox" mit einem festen Text,den ich unter "String" mit Hilfe des Property inspectors eingegeben habe. Kann man diesen variabel mit meinem Pfad verwenden?

Danke schon mal im Voraus!

Grüße Michael
Private Nachricht senden Benutzer-Profile anzeigen


flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2012, 22:29     Titel:
  Antworten mit Zitat      
Lies bitte die Doku

http://www.mathworks.de/help/techdoc/ref/which.html
http://www.mathworks.de/help/techdoc/ref/set.html
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.06.2012, 21:24     Titel: Re: Default Pfad in GUI einrichten
  Antworten mit Zitat      
Hallo schlierfmi,

Ja, das geht.
Zunächst kannst Du den Pfad eines Programms so erhalten:
Code:
[FuncPath, FuncName] = fileparts(mfilename('fullpath'));


In der OpeningFcn des mit GUIDE (nicht "GUI") erstellen Programms, kann man nun FuncName als String in das UICONTROL Objekt einfügen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
schlierfmi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 14.03.12
Wohnort: München
Version: R2011a
     Beitrag Verfasst am: 29.06.2012, 15:14     Titel:
  Antworten mit Zitat      
Danke Jan, habe jetzt meine OpeningFcn erweitert:

Code:
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to untitled (see VARARGIN)
[FuncPath, FuncName] = fileparts(untitled2('fullpath'));
% Choose default command line output for untitled
handles.output = hObject;
UICONTROL('String',FuncName);
% Update handles structure
guidata(hObject, handles);


ist das so weit korrekt?
Bekomme jetzt folgende seltsame Fehlermeldung wenn ich das Programm ausführen will:

"??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
to change the limit. Be aware that exceeding your available stack space can
crash MATLAB and/or your computer.

Error in ==> isprop"
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.06.2012, 15:50     Titel:
  Antworten mit Zitat      
Hallo

MFILENAME ist ein Matlab-Befehl, also den auch so in dein Programm übernehmen
Private Nachricht senden Benutzer-Profile anzeigen
 
schlierfmi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 14.03.12
Wohnort: München
Version: R2011a
     Beitrag Verfasst am: 29.06.2012, 16:18     Titel:
  Antworten mit Zitat      
Okay habe den Code jetzt abgeändert, bekomme aber folgende Meldung:

??? Undefined function or method 'UICONTROL' for input arguments of type
'char'.

Error in ==> untitled2>untitled_OpeningFcn at 59
UICONTROL('String',FuncPath);

Error in ==> gui_mainfcn at 221
feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure),
varargin{:});

Error in ==> untitled2 at 42
gui_mainfcn(gui_State, varargin{:});

hab's mit
Code:
probiert, dann folgende Meldung:
??? Undefined function or method 'UICONTROL' for input arguments of type 'char'.

Error in ==> untitled2>untitled_OpeningFcn at 59
UICONTROL('String',FuncPath);

Error in ==> gui_mainfcn at 221
feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure),
varargin{:});

Error in ==> untitled2 at 42
gui_mainfcn(gui_State, varargin{:});

mein kompletter Code:
Code:
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to untitled (see VARARGIN)
[FuncPath, FuncName] = fileparts(mfilename('fullpath'));
% Choose default command line output for untitled
handles.output = hObject;
%display([FuncPath, FuncName]);
char(FuncPath);
UICONTROL('String',FuncPath);
% Update handles structure
guidata(hObject, handles);
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 03.07.2012, 14:09     Titel:
  Antworten mit Zitat      
Hallo, was willst du denn mit UICONTROL?
Ich habe deine Frage so verstanden, dass du bereits eine Editbox mit GUIDE erzeugt? Ist das richtig?
Dann sollst du über SET den String im Editbox verändern.
Schaue dazu in Property Inspector, welchen Tag-Namen deine Editbox hat, dann kannst mit SET-Befehl und Handle die Properties verändern:
Code:

[FuncPath, FuncName] = fileparts(mfilename('fullpath'));
% Choose default command line output for untitled
handles.output = hObject;
set(handles.hier_bitte_den_TagNamen  ,'String',FuncPath);
 


PS: Bitte schaue dir im Netz Tutorials an! Wie man eine GUI zusammenbaut
Private Nachricht senden Benutzer-Profile anzeigen
 
schlierfmi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 14.03.12
Wohnort: München
Version: R2011a
     Beitrag Verfasst am: 03.07.2012, 15:30     Titel:
  Antworten mit Zitat      
Es geht darum die Editbox von Anfang an variabel zu befüllen.

Ich weiß, dass man mit set die Handles verändern kann.
Aber wie kann ich den Defaultpfad von Anfang an anzeigen lassen?
Das, was zu Beginn in der Box stehen soll, wird ja normal mit dem Property inspector reingeschrieben. Diesen kann ich in diesem Fall allerdings nicht benutzen, da er nur statischen Text unterstützt und keinen Code soviel ich weiß.
Falls ich es mit set versuche, in welche function müsste ich denn meinen set-Befehl schreiben?
-In "function edit3_CreateFcn" passiert gar nichts
- Der set-befehl in function edit3_Callback reagiert nur wenn man mit den Cursor in das Textfeld klickt, aber das ist nicht das was ich möchte...

Code:
s=which('untitled2');
set(handles.edit3, 'String', '%s', s)
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.07.2012, 00:22     Titel:
  Antworten mit Zitat      
Hallo schlierfmi,

Dennys Code gehört in die OpeningFcn. Es wurde in diesem Thread also bereits alles gesagt, was zur Lösung nötig ist. Vielleicht hilft es, ihn nochmals durchzulesen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.