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

Date aus dem AppDesigner auslesen

 

derEchteNoob
Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 21.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2021, 09:00     Titel: Date aus dem AppDesigner auslesen
  Antworten mit Zitat      
Hallo,

ich habe zuvor noch nie mit dem App Designer gearbeitet und habe deshalb folgendes Thema:

-bisher habe ich nur per drag and drop die passenden Blöcke an die jeweilige Position geschoben.

- Ich möchte, dass sich zu Beginn meines Codes das App-Fenster öffnet.
- Auf diesem Fenster gibt es 8 Drop-Down-Blöcke, worin dann immer ein bestimmtes Produkt ausgewählt wird (auch mehrere gleiche Produkte möglich)
- Zusätzlich gibt es noch einen Bestätigungs-Button, mit dem man die Eingabe "einloggt"

jetzt möchte ich, dass sich nach der Betätigung der Bestätigungstaste die eingegebenen Daten ausgelesen werden und hinterlegt werden.


Viele Grüße,

M.
_________________

Servus
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.457
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.08.2021, 09:42     Titel:
  Antworten mit Zitat      
Hallo,

zum Einstieg würde ich das "Interactive Tutorial" empfehlen, das auf der Startseite von App Designer zur Verfügung steht.

Du musst einen Callback für den Button anlegen, und ich würde ein eigenes Property products anlegen. Der Code für den Callback dürfte dann etwa so aussehen:

Code:
app.products = {app.DropDown.Value, app.DropDown2.Value, ...}


Zitat:
Ich möchte, dass sich zu Beginn meines Codes das App-Fenster öffnet.

Wenn du die App ausführst, passiert das automatisch.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
derEchteNoob
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 21.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2021, 10:21     Titel:
  Antworten mit Zitat      
Danke für die Antwort,


allerdings soll die App mit meinem separaten Skript kommunizieren.
Also ich habe ein .m-File, wofür ich die Inputs der Dropdown angaben der App bekommen möchte.

Das heißt also, wenn ich mein Skript ausführe, soll die App gestartet werden und alle Inputs ausgelesen werden, nachdem man den "Bestätige"-Button drückt.

VG,

M.
_________________

Servus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.457
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.08.2021, 10:43     Titel:
  Antworten mit Zitat      
Hallo,

dann musst du in dein Skript folgendes schreiben:

Code:
appHandle = myApp;         % bzw. wie die App halt heißt
products = appHandle.products;  % entscheidend: products muss public, nicht private sein


Für weitere Fragen wäre auch ein (Minimal-) Beispiel hilfreich.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
derEchteNoob
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 21.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2021, 11:22     Titel:
  Antworten mit Zitat      
Im Anhang das Bild vom erstellten Fenster (musste ausgegraut sein).
Wie man sieht, einfach nur dropdown Fenster, worin bestimmte Produkte ausgewählt werden können, dann ein Bestätigungs-Button. Mehr ist stand jetzt nicht zu beachten.

Auch mit deiner vorherigen Antwort komme ich leider nicht weiter. Ich wüsste nicht wo ich den Code einfügen müsste.

Ich kann per Callback auf dem Button die einzelnen Eingaben ausgeben lassen (im Command Window), allerdings weiß ich nicht, wie ich diese im Workspace speichern kann.

gui.jpg
 Beschreibung:

Download
 Dateiname:  gui.jpg
 Dateigröße:  32.11 KB
 Heruntergeladen:  230 mal

_________________

Servus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.457
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.08.2021, 11:30     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Auch mit deiner vorherigen Antwort komme ich leider nicht weiter. Ich wüsste nicht wo ich den Code einfügen müsste.

Dort, wo du die App starten willst. Mehr kann ich dir leider nicht sagen, ohne die App und das Skript zu haben.

Zitat:
allerdings weiß ich nicht, wie ich diese im Workspace speichern kann.

Ich habe dir ja einen Vorschlag gemacht. Hast du das umgesetzt?

Wenn du das Property und den Callback angelegt hast, sollte das problemlos funktionieren. Wenn du Hilfe dabei benötigst oder etwas nicht funktioniert, dann müsstest du wirklich Code zur Verfügung stellen, sonst wird das ein endloses Hin und Her. Es müssen ja z.B. nicht die richtigen Namen der Produkte hinterlegt sein, A bis H tut es auch.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
derEchteNoob
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 21.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2021, 11:46     Titel:
  Antworten mit Zitat      
Da ich theoretisch noch nichts habe, ist der Code auch ziemlich bescheiden:

Skript:
Code:
% appinfo = app2;
appHandle = app2;         % bzw. wie die App halt heißt
eingabe = appHandle.eingabe;  % entscheidend: products muss public, nicht private sein
 



AppDesigner:
Code:
classdef app2 < matlab.apps.AppBase

    % Properties that correspond to app components
    properties (Access = public)
        UIFigure                  matlab.ui.Figure
        1DropDownLabel    matlab.ui.control.Label
        Fahrzeug1DropDown         matlab.ui.control.DropDown
        2DropDownLabel    matlab.ui.control.Label
      2DropDown         matlab.ui.control.DropDown
     ...
...
        BesttigeButton            matlab.ui.control.Button
       
       
    end

    methods (Access = private)

        % Button pushed function: BesttigeButton
        function BesttigeButtonPushed(app, event)
            result = 0;

 app.eingabe = {app.1DropDown.Value, app.2DropDown.Value, ......}

        end
    end

    % App initialization and construction
    methods (Access = private)

        % Create UIFigure and components
        function createComponents(app)

            % Create UIFigure
            app.UIFigure = uifigure;
            app.UIFigure.Color = [0.8 0.8 0.8];
            app.UIFigure.Position = [100 100 640 480];
            app.UIFigure.Name = 'UI Figure';

            % Create 1DropDownLabel
            app.1DropDownLabel = uilabel(app.UIFigure);
            app.1DropDownLabel.HorizontalAlignment = 'right';
            app.1DropDownLabel.FontName = 'Times';
            app.1DropDownLabel.Position = [31 434 69 22];
            app.1DropDownLabel.Text = 'Prdoukt 1';

            % Create 1DropDown
            app.Fahrzeug1DropDown = uidropdown(app.UIFigure);
            app.Fahrzeug1DropDown.Items = {'1', '2',...}};
            app.Fahrzeug1DropDown.FontName = 'Times';
            app.Fahrzeug1DropDown.Position = [115 434 100 22];
            app.Fahrzeug1DropDown.Value = '1';

              % Create 2DropDownLabel
            app.1DropDownLabel = uilabel(app.UIFigure);
            app.1DropDownLabel.HorizontalAlignment = 'right';
            app.1DropDownLabel.FontName = 'Times';
            app.1DropDownLabel.Position = [31 434 69 22];
            app.1DropDownLabel.Text = 'Prdoukt 2';

            % Create 2DropDown
            app.Fahrzeug1DropDown = uidropdown(app.UIFigure);
            app.Fahrzeug1DropDown.Items = {'1', '2',...}};
            app.Fahrzeug1DropDown.FontName = 'Times';
            app.Fahrzeug1DropDown.Position = [115 434 100 22];
            app.Fahrzeug1DropDown.Value = '2';

            ...........


            % Create BesttigeButton
            app.BesttigeButton = uibutton(app.UIFigure, 'push');
            app.BesttigeButton.ButtonPushedFcn = createCallbackFcn(app, @BesttigeButtonPushed, true);
            app.BesttigeButton.FontName = 'Times';
            app.BesttigeButton.Position = [239 78 164 60];
            app.BesttigeButton.Text = 'Bestätige';

           
    end

    methods (Access = public)

        % Construct app
        function app = app2

            % Create and configure components
            createComponents(app)

            % Register the app with App Designer
            registerApp(app, app.UIFigure)

            if nargout == 0
                clear app
            end
        end

        % Code that executes before app deletion
        function delete(app)

            % Delete UIFigure when app is deleted
            delete(app.UIFigure)
        end
    end
end




Das ist alles an Code, was ich bisher habe.

Ich denke, dass irgendetwas falsch ist, da die Eingaben nicht funktionieren.
_________________

Servus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.457
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.08.2021, 11:51     Titel:
  Antworten mit Zitat      
Hallo,

poste bitte das komplette .mlapp file, damit man das ausführen kann. So fehlt einfach zu viel, insbesondere:
Wo und wie ist "eingabe" definiert?
Beginnen die Namen deiner Dropdowns wirklich mit Zahlen? Das solltest du ändern.

Zitat:
da die Eingaben nicht funktionieren.

Heißt was? Bekommst du eine Fehlermeldung, nicht die gewünschten Ergebnisse? Ich würde es ja gerne selbst ausprobieren, kann es aber leider mangels Informationen nicht.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
derEchteNoob
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 49
Anmeldedatum: 21.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2021, 12:02     Titel:
  Antworten mit Zitat      
Im Anhang befindet sich die Datei.
Wie gesagt: eigentlich hab ich noch nichts, lediglich bisschen rumprobiert, ohne Erfolg.

Skript s. vorherige Mail (3 Zeilen)

anw1.zip
 Beschreibung:

Download
 Dateiname:  anw1.zip
 Dateigröße:  13.13 KB
 Heruntergeladen:  202 mal

_________________

Servus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.457
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.08.2021, 12:34     Titel:
  Antworten mit Zitat      
Hallo,

im Anhang die modifizierte App. Entscheidend:
Zeile 20-22: das Property muss angelegt werden
Zeile 30-32: Die Daten werden abgefragt und per assignin in den Base Workspace geschrieben. Ist zwar eher unschön, aber das, was mir hier auf die Schnelle eingefallen ist. Wenn die App dann nicht mehr gebraucht wird, kann man sie optional mit delete schließen.

Aufruf erfolgt dann mit
Code:


Grüße,
Harald

anw1.zip
 Beschreibung:

Download
 Dateiname:  anw1.zip
 Dateigröße:  20.28 KB
 Heruntergeladen:  193 mal

_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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 - 2024 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.