grafische benutzer oberfläche < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 21:13 So 26.04.2009 | Autor: | Fatima |
Hallo,
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt
Zu meiner Aufgabe muss ich 2 verschiedene Autos auswerten, und deshalb brauche ich für mein Skript am Anfang ein Benuteroberfläche mit einer IF Bedingung Z.B( Daten von Toyota ? Daten von BMW?) erscheint. so daß wenn ich Toyota wähle nur der Skript mit der Daten von Toyota Ausgeführt wird
und in diesem IF sind die unterschiedlichen Daten
hat jemand eine Idee. Ihr könnt das oder?
Gruß Fatima
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:16 So 26.04.2009 | Autor: | Frasier |
Hallo,
vielleicht musst du gar nicht ein komplettes GUI schreiben;
es könnte ja einer der fertigen Dialoge reichen, z.B. listdlg
1: | str={'BMW';'Toyota'};
| 2: | [s,v] = listdlg('PromptString','Marke auswählen',...
| 3: | 'SelectionMode','single',...
| 4: | 'ListString',str);
| 5: | if v == 1 % es wurde OK gedückt
| 6: | switch s
| 7: | case 1 % BMW
| 8: | disp('töff töff');
| 9: | case 2 % Toyota
| 10: | disp('brumm brumm');
| 11: | end
| 12: | else % es wurde Cancel gedrückt
| 13: | disp('Abbruch');
| 14: | end |
lg
F.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 23:12 So 26.04.2009 | Autor: | Fatima |
Ja das kann mir helfen, aber was ist mit den anderen Parameter in der Listdlg??
kann man da was noch einstellen oder was, ich bin neu in Matlab deswegen
danke im Vorraus
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 23:18 So 26.04.2009 | Autor: | Frasier |
Ja sicher, da kann man was einstellen; aber was?
Du solltest deine Frage genauer formulieren.
lg
F.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 22:00 Mo 27.04.2009 | Autor: | Fatima |
dass, ich zum Beispiel ein < load > einer m.File
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 08:12 Di 28.04.2009 | Autor: | Frasier |
Hallo,
das hat aber doch nichts mit den Parametern von listdlg zu tun.
Du kannst aber natürlich in den case-Zweigen unterschiedliche Sachen machen, z.B. auch Dateien laden
1: | str={'BMW';'Toyota'};
| 2: | [s,v] = listdlg('PromptString','Marke auswählen',...
| 3: | 'SelectionMode','single',...
| 4: | 'ListString',str);
| 5: | if v == 1 % es wurde OK gedückt
| 6: | switch s
| 7: | case 1 % BMW
| 8: | disp('töff töff');
| 9: | load bmw;
| 10: | case 2 % Toyota
| 11: | disp('brumm brumm');
| 12: | load toyota;
| 13: | end
| 14: | else % es wurde Cancel gedrückt
| 15: | disp('Abbruch');
| 16: | end |
lg
F.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 18:55 Di 28.04.2009 | Autor: | Fatima |
ich habe das erst heute probiert, und habe ich gemerkt, dass die Sache mit der IF bei mir nicht Oky ist. Denn mein Skript ist sehr groß. und wenn ich auf Abruck klicke, das Programm wird nicht richtig gebrochen sondern, läüft weiter!! erst wenn ich die Else ganz am Ende mache, dann funktioniert. Gibt es dazu eine Möglichkeit, dass ich die Else oben Schreibe und wenn ich es abreche, gibt es richtig Stop.
kann man die Größe des Fensters, oder die Schrifftart an der Listdlg ändern?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:42 Di 28.04.2009 | Autor: | Frasier |
Hallo,
> ich habe das erst heute probiert, und habe ich gemerkt,
> dass die Sache mit der IF bei mir nicht Oky ist. Denn mein
> Skript ist sehr groß. und wenn ich auf Abruck klicke, das
> Programm wird nicht richtig gebrochen sondern, läüft
> weiter!! erst wenn ich die Else ganz am Ende mache, dann
> funktioniert. Gibt es dazu eine Möglichkeit, dass ich die
> Else oben Schreibe und wenn ich es abreche, gibt es richtig
> Stop.
Dann hast du falsch programmiert. Aber ohne das Programm zu kennen kann man da nicht wirklich was zu sagen.
> kann man die Größe des Fensters, oder die Schrifftart an
> der Listdlg ändern?
Die Fenstergröße kann man mit dem Parameter 'ListSize' einstellen, die Texte für die Beschriftung kann man auch ändern. Man könnte zwar auch eine andere Schriftart realisieren, dann würde ich aber doch eher empfehlen, selbst eine GUI zu erstellen.
lg
F.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 20:18 Di 28.04.2009 | Autor: | Fatima |
kann es sein , ich bin neu in Matlab, aber es ist so mit dem Programm. und ich habe es gennuso wie du das geschrieben hast.
>> str={'BMW';'Toyota'};
[s,v] = listdlg('PromptString','Marke auswählen',...
'SelectionMode','single',...
'ListString',str);
if v % es wurde OK gedückt
switch s
case 1 % BMW
i = 6.5
m = 1000;
zustand = 4;
disp('Daten von BMW');
case 2 % Toyota
i = 3.2;
m = 900;
zustand = 3;
disp('Daten von Toyota');
end
else % es wurde Cancel gedrückt
disp('Abbruch');
end
% Hier kommt das Programm, gillt für beide
%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:29 Di 28.04.2009 | Autor: | Frasier |
Hallo,
du musst das nur an die richtige Stelle in der if-Anweisung schreiben
1: | str={'BMW';'Toyota'};
| 2: | [s,v] = listdlg('PromptString','Marke auswählen',...
| 3: | 'SelectionMode','single',...
| 4: | 'ListString',str);
| 5: |
| 6: | if v % es wurde OK gedückt
| 7: | switch s
| 8: | case 1 % BMW
| 9: | i = 6.5;
| 10: | m = 1000;
| 11: | zustand = 4;
| 12: | case 2 % Toyota
| 13: | i = 3.2;
| 14: | m = 900;
| 15: | zustand = 3;
| 16: | end
| 17: |
| 18: | % Hier kommt das Programm, gillt für beide
| 19: | disp(['Daten von ' str{s}]);
| 20: | m
| 21: | i
| 22: |
| 23: | else % es wurde Cancel gedrückt
| 24: | disp('Abbruch');
| 25: | end |
lg
F.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 20:45 Di 28.04.2009 | Autor: | Fatima |
das habe ich doch gemeint, dass ich die else erst am Ende vom Programm schreiben soll. aber mein Programm ist wirklich sehr groß, dass ich es in einer if Schleife rein Stecke. Es ist eigentlich für mich wurscht aber ich muss das einfacher schreiben für die anderen, die schlimmer als ich in Matlab sind. das Programm enthält soviel IF; While und FOR.
aber nur zur Info wie kann man die Schriftart ändern bzw Fenstergröße.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:01 Di 28.04.2009 | Autor: | Frasier |
Das hatte ich oben nicht verstanden.
Wenn es funktioniert, gut.
Du könntest den Teil auch in eine eigene Datei schreiben, und die dann aufrufen. Dann wird es übersichtlicher.
Nochmal ein Beispiel, hier ist das Fenster auch kleiner
1: | str={'BMW';'Toyota'};
| 2: | [s,v] = listdlg('PromptString','Marke auswählen',...
| 3: | 'SelectionMode','single',...
| 4: | 'ListString',str,...
| 5: | 'ListSize',[100,100]);
| 6: |
| 7: | if v % es wurde OK gedückt
| 8: | switch s
| 9: | case 1 % BMW
| 10: | i = 6.5;
| 11: | m = 1000;
| 12: | zustand = 4;
| 13: | case 2 % Toyota
| 14: | i = 3.2;
| 15: | m = 900;
| 16: | zustand = 3;
| 17: | end
| 18: |
| 19: | % Hier kommt das Programm, gillt für beide
| 20: | berechne; % Eine andere Datei aufrufen
| 21: |
| 22: | else % es wurde Cancel gedrückt
| 23: | disp('Abbruch');
| 24: | end |
und in eine andere Datei schreibst du dann
1: | disp(['Daten von ' str{s}]);
| 2: | m
| 3: | i | oder was auch immer. Diese Datei muss dann berechne.m heißen.
Um die Schriftart zu ändern ist eine Änderung an der Datei listdlg.m nötig. Das würde ich an deiner Stelle nicht machen. Bastel dir dann lieber ein eigenes GUI, wenn unbedingt die Schriftart geändert werden muss.
lg
F.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:26 Di 28.04.2009 | Autor: | Fatima |
ich muss leider alles in einem Skript Schreiben. Aber das ist auch eine gute Idee von dir. Ich danke dir es war ein guter Dialog
bis dann
|
|
|
|