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

Codeabarbeitung bei Werteänderung

 

Turbopavel
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 22.11.12
Wohnort: ---
Version: R2017a
     Beitrag Verfasst am: 06.02.2018, 17:53     Titel: Codeabarbeitung bei Werteänderung
  Antworten mit Zitat      
Hallo.

Ich habe in meiner GUI einen Slider, mit dem ich den Helligkeitswert eines mir angezeigten Bildes ändern kann. Aktuell stelle ich den Wert über den Slider ein und lasse mir das Bild dann über einen Pushbutton neu berechnen und anzeigen.

Meine Frage: Ist es möglich das Bild mit geändertem Wert sofort beim Betätigen des Sliders anzeigen zu lassen, sprich sobald sich der Helligkeitswert ändert. (also ohne extra jedes Mal den Button zu betätigen)?

Oder allgemein gefragt, gibt es die Möglichkeit bei Eingabe eines Wertes eine sofortige Abarbeitung des Codes zu veranlassen.

Danke für eure Hilfe.
Private Nachricht senden Benutzer-Profile anzeigen


SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2018, 09:51     Titel:
  Antworten mit Zitat      
Ja das ist möglich. Du musst einfach den Code, den du in dem Pushbutton Callback hast, in den Callback von dem Slider einfügen. Den Callback des Sliders musst du evtl erst noch in dem Property Window in guide aktivieren. Oder arbeitest du nicht mit guide?
Private Nachricht senden Benutzer-Profile anzeigen
 
Turbopavel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 22.11.12
Wohnort: ---
Version: R2017a
     Beitrag Verfasst am: 07.02.2018, 10:05     Titel:
  Antworten mit Zitat      
Ja okay, soweit macht das Sinn. Problem ist nur, dass ich mehrere verschiedene Werte über mehrere Slider einstelle, um Eigenschaften am Bild zu ändern. Dann müsste ich ja in jede Callback Funktion meiner Slider den gesamten Code hinterlegen. Gibt es nicht die Möglichkeit, die Werte der einzelnen Objekte (Slider, EditBox, ...) auszulesen und quasi eine "ständige" Berechnung durchzuführen. Im Prinzip möchte ich einen Wert ändern und die Auswirkungen sollen sofort (ohne Betätigung des Buttons) am Bild sichtbar sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2018, 14:37     Titel:
  Antworten mit Zitat      
ja das ist auch möglich.

schreib dir eine funktion, die dieses aktualisieren des Bildes macht und übergib ihr die handles zu den buttons

Code:
function updateImage(handles,...)

bsp1=get(handles.slider1,'Value')
bsp2=get(handles.slider2,'Value')
...
 


Die Funktion wird dann einfach von all deinen Callbacks aufgerufen Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Turbopavel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 22.11.12
Wohnort: ---
Version: R2017a
     Beitrag Verfasst am: 08.02.2018, 16:07     Titel:
  Antworten mit Zitat      
Könntest du das noch etwas konkretisieren? Ich steh da jetzt irgendwie auf dem Schlauch.
Private Nachricht senden Benutzer-Profile anzeigen
 
SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2018, 13:13     Titel:
  Antworten mit Zitat      
du hast doch für jeden Slider eine Callback Funktion oder?

In diese fügst du einfach den Aufruf zu der "updateImage(handles,...)" Funktion ein. Wichtig ist dabei, dass du die handles der GUI übergibst. Dann kannst du auch innerhalb dieser Funktion auf alle Slider zugreifen und die Daten (z.B. Value entspricht der Sliderposition) auslesen.

Code:
get(handles.slider1,'Value')


Bisher hast du ja für jeden Slider einzeln in der Callback Funktion die Änderungen stehen, die gemacht werden sollen. Diesen Code musst du einfach in eine eigene Funktion packen. Diese wird dann von allen Callbacks deiner Slider aufgerufen.

In den angehängten Dateien ist ein lauffähiges Minimalbeispiel (erstellt mit R2015b)

updateEditBox.m
 Beschreibung:
Funktion aktualisiert die GUI

Download
 Dateiname:  updateEditBox.m
 Dateigröße:  181 Bytes
 Heruntergeladen:  456 mal
sliderTest.m
 Beschreibung:
GUI function. Diese Datei ausführen

Download
 Dateiname:  sliderTest.m
 Dateigröße:  5.51 KB
 Heruntergeladen:  434 mal
sliderTest.fig
 Beschreibung:
automatisch von guide erstellt

Download
 Dateiname:  sliderTest.fig
 Dateigröße:  7.09 KB
 Heruntergeladen:  421 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Turbopavel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 22.11.12
Wohnort: ---
Version: R2017a
     Beitrag Verfasst am: 20.02.2018, 12:57     Titel:
  Antworten mit Zitat      
Sehr gut. Das habe ich gesucht. Danke.
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.