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

Tooltip in GUI

 

itsme87
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 04.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2013, 12:22     Titel: Tooltip in GUI
  Antworten mit Zitat      
Hallo zusammen,

ich möchte in mein GUI eine Info-/Hilfe-Funktion einbauen. Und zwar stelle ich mir das so vor dass ich mithilfe von Axes ein Bild lade (Fragezeichen oder sowas) und wenn man mit der Maus über dieses Bild fährt wird ein Kasten mit einem erklärenden Text angezeigt.

Ich habe mich jetzt schon ein paar Stunden daran versucht bin aber zu keiner Lösung gekommen.

Eine Möglichkeit ist wohl das Ganze mithilfe der WindowButtonMotionFcn zu lösen.
Ich schaffe es problemlos die aktuelle Mausposition auszulesen. Aber wie kann ich dann ein Rechteck mit Text anzeigen das wieder verschwindet sobald die Maus das Bild wieder verlässt?

Hat da jemand Ideen/Erfahrungen?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

Pseudocode:

Code:
if ~isfield(handles, 'help')
if inBereich
handles.help = text(x, y, 'Some text')
elseif inAnderemBereich
handles.help = text(x, y, 'Some other text')
elseif
...
end
else
if nichtInEinemBereich
delete(handles.help)
rmfield(handles, 'help')
end
guidata(handles.figure1, handles)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
itsme87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 04.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2013, 13:35     Titel:
  Antworten mit Zitat      
Super, danke Smile

Der Text wird auch schon angezeigt, zwar noch nicht formatiert aber das sollte hoffenltich kein Problem sein.

ABER: Der Text erscheint erst wenn man auf das Bild klickt UND wird nicht wieder gelöscht.
Hast du eine Idee woran das liegen kann?


Code:
function main_execution_WindowButtonMotionFcn(hObject, eventdata, handles)

pos = get(handles.axes_info_length_mikrotrips,'CurrentPoint');
xlim = get(handles.axes_info_length_mikrotrips,'xlim');
ylim = get(handles.axes_info_length_mikrotrips,'ylim');

pos_x = pos(1:2:end,1);
pos_y = pos(1:2:end,2);

ind = and(and(pos_x>xlim(:,1),xlim(:,2)>pos_x),and(pos_y>ylim(:,1),ylim(:,2)>pos_y));


    if ind == 1
        position = get(handles.axes_info_length_mikrotrips,'position');
        handles.help = text(position(1),position(2),'text','FontUnit','pixels','BackgroundColor',[.7 .9 .7],'EdgeColor','red');
         disp(sprintf('X=%.3f Y=%.3f',pos_x(ind),pos_y(ind)));
    else
        if isfield(handles,'help')
        delete(handles.help)
        handles = rmfield(handles,'help');
        end
    end

    guidata(hObject,handles)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.11.2013, 17:38     Titel:
  Antworten mit Zitat      
Hallo,

das Problem, dass die Funktion erst ausgeführt wird, wenn du auf das Bild klickst, wirst du aber schon vorher gehabt haben?
Wird die Callback-Funktion nicht ausgeführt, wenn du das Bild verlässt, oder lediglich nicht die Textbox entfernt?
Mit dem Debugger kannst du das ja selbst eingrenzen.

Für weitere Hilfe wäre ein lauffähiges Beispiel von Nutzen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
itsme87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 04.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.12.2013, 04:32     Titel:
  Antworten mit Zitat      
Hey,

ich habe jetzt eine ganze Weile an einem anderen Teil meines Programms gearbeitet. Im Endeffekt ist so eine Hilfefunktion nur eine Hilfe zur leichteren Bedienung, die anderen Sachen sind aber wichtiger.

Ich bin einen Schritt weitergekommen: Der Text verschwindet wieder.
Aber: er taucht an der falschen Stelle auf, und teilweise nur nach anklicken der entsprechenden Axes.

Ich habe mal ein lauffähiges Beispiel gebastelt.
Bei Axes2 (unten) wird der Text gleich angezeigt, allerdings irgendwo anders als ich es möchte. Bei Axes1 wird er erst angezeigt sobald man einmal auf das Bild klickt. Danach erscheint der Text von Axes2 auch an anderer Stelle.

Ich schätze mal dass da irgendwas mit den Units nicht passt, komme aber nicht darauf wo der Fehler genau liegt.

Ich hoffe es findet sich jemand mit mehr Erfahrung der mir helfen kann Smile
Danke schonmal

test_motion.m
 Beschreibung:

Download
 Dateiname:  test_motion.m
 Dateigröße:  3.57 KB
 Heruntergeladen:  448 mal
test_motion.fig
 Beschreibung:

Download
 Dateiname:  test_motion.fig
 Dateigröße:  6.93 KB
 Heruntergeladen:  476 mal
fragezeichen.jpg
 Beschreibung:

Download
 Dateiname:  fragezeichen.jpg
 Dateigröße:  9.92 KB
 Heruntergeladen:  653 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
itsme87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 04.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2013, 09:15     Titel:
  Antworten mit Zitat      
Habs mittlerweile hinbekommen.
Zum Testen noch das Bild aus meinem vorherigen Beitrag laden.

Und sorry für den etwas unübersichtlichen Code, es ist nur ein Beispiel zum Testen, nachdem es jetzt funktioniert werde ich es sauber in meine GUI einbauen

Ein letztes Problem habe ich aber noch: Neben den infobildern habe ich static text-Felder. Der eingeblendete Infotext wird von den text-Feldern verdeckt. static text hat leider keine Layer-Property.
Ich habe auch schon versucht im Befehl text(x,y,z,'...') einen z-Wert anzugeben und somit den Text über dem static text anzuzeigen. Hat aber nicht funktioniert.
Kann mir da jemand weiterhelfen?

Danke schon mal im Voraus Smile

test_motion.m
 Beschreibung:

Download
 Dateiname:  test_motion.m
 Dateigröße:  4.52 KB
 Heruntergeladen:  465 mal
test_motion.fig
 Beschreibung:

Download
 Dateiname:  test_motion.fig
 Dateigröße:  9.33 KB
 Heruntergeladen:  479 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 11.12.2013, 14:46     Titel:
  Antworten mit Zitat      
Zitat:

Ein letztes Problem habe ich aber noch: Neben den infobildern habe ich static text-Felder. Der eingeblendete Infotext wird von den text-Feldern verdeckt. static text hat leider keine Layer-Property.
Ich habe auch schon versucht im Befehl text(x,y,z,'...') einen z-Wert anzugeben und somit den Text über dem static text anzuzeigen. Hat aber nicht funktioniert.
Kann mir da jemand weiterhelfen?

Text ist über den Rahmengrenzen nur sichtbar wenn keine GUI Elemente die Sicht behindern. Das einzige was mir dazu einfällt, die Static Text auszublenden. Also Visible auf off setzen.

Ansonsten gibt es in Matlab noch folgende Möglichkeit für Tooltip:
http://www.mathworks.de/support/sol.....CKJ.html?solution=1-19CKJ
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.