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

ToggleButton programmieren

 

ichris8
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.06.10
Wohnort: Wuppertal
Version: R2010a
     Beitrag Verfasst am: 11.08.2010, 07:44     Titel: ToggleButton programmieren
  Antworten mit Zitat      
Hallo zusammen,
ich habe eine Frage, die mir hier bestimmt jemand beantworten kann.
Und zwar möchte ich einen ToggleButton programmieren, der mir je nach Status, verschiedene Programmteile ausführt. Dabei soll er auch die Farbe des Buttons ändern.
Um das mal zu veranschaulichen, versuche ich das mal genau zu beschreiben:
Ich möchte einen Button, der bei Programmstart rot dargestellt ist und in dem Disconneted steht. Bei Betätigung soll sich die Farbe in grün ändern und der Text in Connected wechseln.

Dies habe ich bislang über 2 PushButton realiert, jedoch ohne Farben, so dass man nicht erkennen kann welcher Status aktiv ist.

Wo muss der dazugehörige Quellcode rein, der bei jeder Betätigung ausgeführt werden soll??

Ich bedanke mich jetzt schon mal für eure Hilfe,
LG Chris
_________________

LG, Chris
Private Nachricht senden Benutzer-Profile anzeigen


yankemen
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 14.04.10
Wohnort: ---
Version: 32: 2008a & 2010a
     Beitrag Verfasst am: 11.08.2010, 08:47     Titel:
  Antworten mit Zitat      
Moin Chris,

kannst Du bitte Deinen bisherigen Quellcode anhängen bzw. posten? Es ist ja doch ein Unterschied, ob per Guide oder nicht die Sache erstellt wurde. Und es lässt sich dann leichter sagen, wo da was rein soll. Wenn es nichts ausmacht, kannst Du den Code auch auf das relevante Minimum reduzieren.

Ciao,
yankemen
_________________

Code:
% Kommentare brauchen ein Leerzeichen nach dem %
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
ichris8
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.06.10
Wohnort: Wuppertal
Version: R2010a
     Beitrag Verfasst am: 11.08.2010, 08:54     Titel:
  Antworten mit Zitat      
Hi, danke schon mal für die Antwort. Ich habe mir eine GUI zusammengebastelt. In die Callback dann den Code drin.
Jetzt fehlt wie ich schon erwähnt habe die Modifikation mit den Farben usw

Code:

function Connected_Callback(hObject, eventdata, handles)
tb1 = get(handles.Connected,'Value');
if tb1 == 1
   
    RS232 = instrfind('Type', 'serial', 'Port', '/dev/tty.usbserial-A50023nX', 'Tag', '');
    if isempty(RS232)
        RS232 = serial('/dev/tty.usbserial-A50023nX','BaudRate', 115200,'InputBufferSize', 1024, 'Timeout', 60);
    else
        fclose(RS232);
        RS232 = RS232(1);
    end
    %RS232.inputbuffersize =[1024];
    %set(RS232, 'Timeout',60);
    fopen(RS232);
end
if tb1 == 0
    RS232 = instrfind('Type', 'serial', 'Port', '/dev/tty.usbserial-A50023nX', 'Tag', '');
    if isempty(RS232)
        RS232 = serial('/dev/tty.usbserial-A50023nX');
    else
        fclose(RS232);
        delete(RS232);
        clear RS232;
    end
end
 


Bildschirmfoto 2010-08-11 um 09.50.38.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2010-08-11 um 09.50.38.png
 Dateigröße:  10.61 KB
 Heruntergeladen:  729 mal

_________________

LG, Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
yankemen
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 14.04.10
Wohnort: ---
Version: 32: 2008a & 2010a
     Beitrag Verfasst am: 11.08.2010, 09:52     Titel:
  Antworten mit Zitat      
Moin Chris,

okay, jeder hat seinen Programmierstil. Ich hatte jetzt eher eine Callback für den Toggle-Button erwartet Smile Anders gesagt: ich würde sie nicht Connect_Callback, sondern ToggleButton_Callback nennen.
Unter der Annahme, dass Dein Programm bisher alles tut was es soll, ändert sich aber nichts am eigentlichen:
Code:
% wie Deine Funktion im Detail heißt, weiß ich nicht, aber das es den Anschein macht, dass Du mit Guide arbeitest, sollte sie irgendwie so heißen
% vielleicht kannst Du das im Grafikmenu auch direkt einbauen, geht ja um Startwerte. Dazu auf das Element doppelklicken
function Connected_CreateFcn(hObject, eventdata, handles)
    set(hObject,'BackgroundColor',[1, 0, 0]);
    set(hObject,'String','Disconnected');
    ...
end
...
% unter der Annahme, dass sie so funktioniert.
function Connected_Callback(hObject, eventdata, handles);
tb1 = get(handles.Connected,'Value');
if tb1 == 1 % wann jetzt 1 und 0, musst Du selbst herausfinden
    ....
    set(handles.Connected,'String','Connected');
    set(handles.Connected,'BackgroundColor',[1, 0, 0]);
    guidata(hObject, handles); % damit Änderungen nicht verloren gehen
end
if tb1 == 0
    ...
    set(handles.Connected,'String','Disconnected');
    set(handles.Connected,'BackgroundColor',[0, 1, 0]);
    guidata(hObject, handles);
end
Die Eigenschaften Deines Objekts hängen immer vom typ ab und sind wie oben beschrieben einsehbar. Ich würde die Farbänderung immer erst nach dem erfolgreichen Durchlaufen der Anweisungen davor machen, dann hast Du gleich die Rückmeldung, dass alles geklappt hat.

HTH,
yankemen
_________________

Code:
% Kommentare brauchen ein Leerzeichen nach dem %
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
ichris8
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.06.10
Wohnort: Wuppertal
Version: R2010a
     Beitrag Verfasst am: 11.08.2010, 09:59     Titel:
  Antworten mit Zitat      
Klasse, das werde ich direkt mal umsetzen und schaue mal ob das so aussieht wie ich mir das vorstelle.

Melde mich dann gleich noch mal Very Happy

LG Chris
_________________

LG, Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
ichris8
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.06.10
Wohnort: Wuppertal
Version: R2010a
     Beitrag Verfasst am: 11.08.2010, 10:31     Titel:
  Antworten mit Zitat      
Alsooo,
der Text ändert sich so wie er soll.
Was die Farbe angeht leider nicht. Im unbetätigtem Zustand ist der Button hellgrau, bei Betätigung wird er dunkelgrau. Leider ist nichts von dem rot und grün zu sehen.
Sonst läuft alles wie es soll. Hast du da noch ne Idee woran das liegen kann?
_________________

LG, Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
yankemen
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 14.04.10
Wohnort: ---
Version: 32: 2008a & 2010a
     Beitrag Verfasst am: 11.08.2010, 11:17     Titel:
  Antworten mit Zitat      
Moin Chris,

Du kannst auch selbst in den Eigenschaften nach gucken mit dem erwähnten Doppelklick, wenn Du die Figure mittels Guide offen hast (sofern Du es so erstellst).
Da gibt es noch ForegroundColor. Probier die mal aus.
Dort wird auch eine ButtonDownFcn und eine KeyPressFcn angesprochen, die man sich aber wohl erst anlegen muss.

Mehr Vorschläge habe ich dann nicht, da ich das noch nicht selbst probieren konnte.

HTH,
yankemen

Edit: Ich meinte Guide, nicht denVertippfehler

Zuletzt bearbeitet von yankemen am 11.08.2010, 11:26, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
ichris8
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.06.10
Wohnort: Wuppertal
Version: R2010a
     Beitrag Verfasst am: 11.08.2010, 11:23     Titel:
  Antworten mit Zitat      
Danke trotzdem. Ich glaube ich beschränke mich jetzt auf die Farbänderung des Textes. Das funktioniert mit deinen Tips und der Effekt ist auch da, zwar nicht so schön aber es klappt.

Warst mir ne große Hilfe!!!

LG Chris
_________________

LG, Chris
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: 11.08.2010, 11:39     Titel:
  Antworten mit Zitat      
Hallo Chris,

hast Du einen Schwarz-Weiß-Bildschirm? :-)

Eigentlich funktioniert das setzen des RGB-Wertes zuverlässig. Kannst Du es mal manuell versuchen und posten, wie Du genau die Farbe setzt?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.06.10
Wohnort: Wuppertal
Version: R2010a
     Beitrag Verfasst am: 11.08.2010, 11:54     Titel:
  Antworten mit Zitat      
Hi Jan,
was genau meinst du mit manuel?
Ich kann selbst im Inspector die Farbe des Buttons nicht ändern, nur die der Schriftfarbe. Ergo, Foreground funzt, Background nicht.
Als wenn mir irgendwas meine Änderung überschreiben würde. Nur was?

LG Chris
_________________

LG, Chris
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: 11.08.2010, 12:44     Titel:
  Antworten mit Zitat      
Hallo Chris,

Du kannst im Inspector die Farbe nicht ändern -- ungewöhnlich.
Ist beim Butten "Enable" auf "off" gesetzt?
Dann übernimmt das Betriebssystem die Farb-Anpassung, aber zusätzlich solltest Du ihn auch nicht mehr anklicken können.

Zeichnest Du vielleicht mehrere Button übereinander, so dass Du den falschen siehst??

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.06.10
Wohnort: Wuppertal
Version: R2010a
     Beitrag Verfasst am: 11.08.2010, 12:49     Titel:
  Antworten mit Zitat      
Hi Jan,
nein nichts dergleichen. Ich habe auch schon versucht einen Neuen zu erstellen, aber da habe ich genau das gleiche Problem.
Schrift lässt sich ändern, der Rest nicht.
Die Farbe ändert sich von hellgrau auf dunkelgrau, so wie der default Wert eben ist.

LG Chris
_________________

LG, Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
ichris8
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.06.10
Wohnort: Wuppertal
Version: R2010a
     Beitrag Verfasst am: 11.08.2010, 12:52     Titel:
  Antworten mit Zitat      
Hier mal zwei Bilder.

Bildschirmfoto 2010-08-11 um 13.51.12.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2010-08-11 um 13.51.12.png
 Dateigröße:  10.5 KB
 Heruntergeladen:  740 mal

_________________

LG, Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
ichris8
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.06.10
Wohnort: Wuppertal
Version: R2010a
     Beitrag Verfasst am: 11.08.2010, 12:52     Titel:
  Antworten mit Zitat      
2.

Bildschirmfoto 2010-08-11 um 13.50.58.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2010-08-11 um 13.50.58.png
 Dateigröße:  85.49 KB
 Heruntergeladen:  724 mal

_________________

LG, Chris
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: 11.08.2010, 13:21     Titel:
  Antworten mit Zitat      
Hallo Chris,

kann das an der Matlab und MacOS Version liegen?
Was passiert, wenn Du dies startest:
Code:
figure;
uicontrol('Style', 'togglebutton', 'BackgroundColor', [1, 0, 0]);

Google nennt mir dies:
http://www.mathkb.com/Uwe/Forum.asp.....1-GUI-breaks-button-color
http://www.mathworks.de/matlabcentr.....reader/view_thread/258818

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

Gehe zu Seite 1, 2  Weiter

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.