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

Fehler bei Nutzung des Mausrads bei zoom on

 

DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 07.03.2016, 19:16     Titel: Fehler bei Nutzung des Mausrads bei zoom on
  Antworten mit Zitat      
Hallo goMatlab Forum,

ich habe in der toolbar meiner GUI die beiden bekannten Lupensymbole zoom +/- als Buttons. Die beiden Callbacks der Buttons sehen so aus:

Code:

% increase zoom
    function ZoomInItem_Callback(varargin)
        if strcmp(get(handles.ZoomIn,'State'),'on')
            % enable zoom in
            hZoom = zoom(handles.MainWindow);
            set(hZoom,'Enable','on','Direction','in')
            % toolbar zoom OUT button off
            set(handles.ZoomOut,'State','off')
        else
            % zoom off
            zoom(handles.MainWindow,'off')
        end
    end

    % decrease zoom
    function ZoomOutItem_Callback(varargin)
        if strcmp(get(handles.ZoomOut,'State'),'on')
            % enable zoom out
            hZoom = zoom(handles.MainWindow);
            set(hZoom,'Enable','on','Direction','out')
            % toolbar zoom IN button off
            set(handles.ZoomIn,'State','off')
        else
            % zoom off
            zoom(handles.MainWindow,'off')
        end
    end
 



Wenn ich nun einen der Buttons betätige und danach das Mausrad drehe, erhalte ich folgende Fehlermeldung:

Zitat:

Error while evaluating Figure WindowScrollWheelFcn

Cell contents reference from a non-cell array object.

Error in matlab.graphics.interaction.hitAxes>removeAxesInOffscreenContainers (line 63)

Error in matlab.graphics.interaction.hitAxes (line 21)

Error in zoom>locFindAxes (line 2502)

Error in zoom>localButtonWheelFcn (line 737)

Error using waitfor
Error while evaluating Figure WindowScrollWheelFcn



Ich habe nun in meiner figure eine WindowScrollWheelFcn definiert,...

Code:
handles.MainWindow = figure(...
'WindowScrollWheelFcn',{@figScroll});


welche allerdings beim Betätigen des Mausrades nicht ausgeführt wird. Die Fehlermeldung erscheint vorher.

In folgendem kleinen Beispiel kann das Mausrad zum Zoom ohne Probleme verwendet werden.
Code:

hfig = figure(1);
plot(randn(100,1));
zoom(hfig,'on')
 


Was mache ich falsch? Wieder mal vorweg Danke für eure Hilfe!

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 07.03.2016, 20:22     Titel:
  Antworten mit Zitat      
Ich habe zumindest mal die Fehlerquelle gefunden.

Das Probleme wird durch den Tab verursacht, in dem mein axes sitzt:

Code:

% Tab group
handles.tabgp = uitabgroup(...
'Parent',handles.MainWindow,...
'Position',[0 0 1 0.83],...
'SelectionChangedFcn',{@UserSelTab});

handles.TabPlot = uitab(...
'Parent',handles.tabgp,...
'Title','Plot');

handles.axh = axes(...
'Parent',handles.TabPlot,...
 


Ist von handles.axh das Parent Objekt nicht ein Tab sondern die figure, geht Zoom per Mausrad ohne Probleme.

Ich habe meine GUI mal auf das Notwendigeste geschrumpft, wo der Fehler reproduziert wird. Leider sieht man die beiden Buttons ganz links in der Toolbar nicht, da ich sonst die Grafiken auch noch mit anhängen müsste. Also einfach oben links mit der Maus fahren, da kann man die Buttons erkennen.

Ich kann allerdings nicht auf die Tabs verzichten. Es wäre also super, wenn jemand eine Lösung inkl. des Tabs findet/kennt.

Gruß DSP

SignalViewerTEST.m
 Beschreibung:

Download
 Dateiname:  SignalViewerTEST.m
 Dateigröße:  3.71 KB
 Heruntergeladen:  490 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 08.03.2016, 19:32     Titel:
  Antworten mit Zitat      
Hallo,

eigentlich genügt auch dieses Minimalbeispiel um den Fehler zu reproduzieren:

Code:

hfig = figure(1);

% Tab group
tabgp = uitabgroup(...
'Parent',hfig,...
'Position',[0 0 1 1]);

Tab1 = uitab(...
'Parent',tabgp,...
'Title','Plot');

axh = axes(...
'Parent',Tab1,...
'Units','normalized',...
'Position',[0.1 0.1 0.8 0.8]);

% plot
plot(axh,1:100,randn(100,1))
zoom(hfig,'on')

uiwait(hfig);
 


Eine Lösung um die Mausrad Geste bei zoom an zu deaktivieren, würde mir auch erstmal genügen. Vielen Dank für eure Hilfe.

Gruß DSP

EDIT: Evtl. kann es ja mal jemand auf einer aktuellen Matlab Version testen, um zu wissen, dass es nicht ein Bug der R2014b Version ist. Diese Info wäre schon mal ganz hilfreich für mich.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.03.2016, 21:12     Titel:
  Antworten mit Zitat      
also bei 2015a gibts den fehler auch.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 08.03.2016, 21:21     Titel:
  Antworten mit Zitat      
Danke Winkow für das Feedback!

Angeblich soll es mit der R2015b Version gefixed worden sein. Wäre nett, wenn das jemand mal bitte testet.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 12.03.2016, 21:35     Titel:
  Antworten mit Zitat      
Ich habe eine Lösung/workaround gefunden um die Fehlermeldung zu vermeiden.

Code:

% get handle
hZoom = zoom;
% define zoom callback for mouse gestures
set(hZoom,'ActionPostCallback',@MouseAction)
 


Natürlich muss man dann entsprechend die Mausklicks/-gesten in der Callback verarbeiten. Aber immer noch besser als die Fehlermeldung zu erhalten.

Gruß DSP
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.