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

Nachträglich Tabs in fig-file einfügen

 

EdAl
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 18.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2011, 14:02     Titel: Nachträglich Tabs in fig-file einfügen
  Antworten mit Zitat      
hallo,

weiß jemand, ob es möglich ist, nachträglich Tab´s in eine Gui einzufügen? Benutze Tabpanel creator. Wenn ich ein neues Tab einfüge, dann ist das im Hintergrund der GUI und die Buttons des bestehenden GUI s sind im vordergrund.

hat jemand eine Lösung, wie man das anders hin bekommen kann??

Grüße

Alex
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 18.01.2011, 17:44     Titel:
  Antworten mit Zitat      
Hi,

meinst du mit Tabs "Reiter" also uitab??

Zitat:

Benutze Tabpanel creator.

Ist das ne Funktion vom MFE?? Die kenne ich nicht...

Naja wenn du uitabs meinst, dann kannst du diese nach belieben hinzufügen und löschen.
mit
Code:

which uitabgroup
 

bekommste den Pfad von der Funktion. Da kannste ja mal reinscheuen. Die ist undokumentiert aber du kannst sie nutzen. In Version 2010a (ich glaube da hat sich in 2010b was geändert) steht dazu folgendes Beispiel:

Code:

h = uitabgroup('v0'); drawnow;
t1 = uitab('v0', h, 'title', 'Panel 1');
a = axes('parent', t1); surf(peaks);
t2 = uitab('v0', h, 'title', 'Panel 2');
closeb = uicontrol(t2, 'String', 'Close Me', ...
           'Position', [180 200 200 60], 'Call', 'close(gcbf)');
 


Hast du eine GUI mit GUIDE erstellt kannst du die uitabs in der Opening_FCN nach Bedarf einfügen. Dafür musst du nur die entsprechenden uipanels den passenden uitabs als parent hinzufügen...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
Panela
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 26.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2011, 11:21     Titel:
  Antworten mit Zitat      
Hey Marco,

könntest Du vielleicht mal ein komplettes Beispiel darstellen?

Ich habe ein GUI mit GUIDE erstellt und den Beispiel-Code aus MATLAB für uitabgroup ausgeführt.

Code:

function [a,b,c,d] = ex_tabgroup
% This R2010b code does not use 'v0' syntax and updates properties

hf = figure;
a = uitabgroup('Parent',hf);        % Do not use the 'v0' argument
b = uitab('parent',a,'title','Breakfast');
c = uitab('parent',a,'title','Lunch');
d = uitab('parent',a,'title','Dinner');
set(a,'SelectionChangeCallback',...  % Formerly SelectionChangeFcn
    @(obj,evt) selectionChangeCbk(obj,evt));
set(a,'SelectedTab',b);          % Replaces SelectedIndex property

function selectionChangeCbk(src,evt)
% This new code uses tab handles to directly access tab properites

oldTab = evt.OldValue;                % Event member is tab handle
oldName = get(oldTab,'title');        % Access child tab directly
newTab = evt.NewValue;                % Event member is tab handle
newName = get(newTab,'title');        % Access child tab directly
disp(['It was ' oldName ' time; now it is ' newName ' time.'])


Ich bekomme es hin, dass die Tabs über meiner GUI angezeigt werden.

Code:

% --- Executes just before tab_test is made visible.
function tab_test_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to tab_test (see VARARGIN)

a = uitabgroup;
tab1 = uitab('parent',a,'title','Tab1');
tab2 = uitab('parent',a,'title','Tab2');

% Choose default command line output for tab_test
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
 



Meine Frage ist, wo und wann ich meine einzelnen Buttons, Texte und Textedits den einzelnen Reitern zuordne. In der OpeningFcn sind diese ja noch nicht bekannt.

Vielen Dank schonmal für Deine Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 01.02.2011, 12:43     Titel:
  Antworten mit Zitat      
Hey,
Zitat:

Meine Frage ist, wo und wann ich meine einzelnen Buttons, Texte und Textedits den einzelnen Reitern zuordne. In der OpeningFcn sind diese ja noch nicht bekannt.

Doch da wurden sie schon initialisiert. Wenn du in der OpeningFcn einmal set(hObject,'Visible','on') eingibst siehst du, dass lediglich die figure ausgeblendet ist. Die GUI wurde also schon initialisiert... Also kannst du in der OpeningFcn die grafischen Objekte den uitabs hinzufügen...

Code:

function tab_test_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to tab_test (see VARARGIN)

handles.tabgrp = uitabgroup('parent',hObject);
handles.tab1 = uitab('parent',handles.tabgrp,'title','Tab1');
handles.tab2 = uitab('parent',handles.tabgrp,'title','Tab2');
% an dieser Stelle musst du bei den GUIelemente die sich in den handles befinden das parent ändern. Z.B. es existiert handles.uipanel1 & handles.uipanel2
set(handles.uipanel1,'parent',handles.tab1)
set(handles.uipanel2,'parent',handles.tab2)
% ggf musst du die größen der tabs noch anpassen...
% Choose default command line output for tab_test
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
 


Ich hoffe es ist klar geworden...
Achja alternativ kann man auch in GUIDE die komplette GUI in ein m-File exportieren. Da steht einem eine Name_export_LayoutFcn(policy) zur verfügung in der alle im GUIDE erstellten Objekte initialisiert werden. Auch dort könnte man die tabs einbinden. Der Vorteil ist, dass das .fig File
nicht mehr benötigt wird...

MfG Marco
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.