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

Input und Output Tab/Registerkarte

 

Wimme
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 15.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.05.2012, 10:35     Titel: Input und Output Tab/Registerkarte
  Antworten mit Zitat      
Hallo!

Ich würde gerne in meinem GUI oben zwei Registerkarten haben, durch die man zwischen "Input" und "Output" wechseln kann. Bei aktivem "Input" soll das GUI so angezeigt werden, wie es zur Zeit ist, bei aktivem "Output" soll erstmal der Einfachheit halber nur ein leeres Panel angezeigt werden.

Nach ein wenig googeln, bin ich auf folgende Möglichkeit gestoßen,
http://www.mathworks.com/matlabcentral/fileexchange/6996
komme mit dem TabPanel Constructor allerdings nicht ganz zurecht.

1. Wenn ich ein Panel anlegen will, kommt der Fehler: "Width and Height must be >0". Was soll das? ...

2. Habe ich ein Panel angelegt (vor einer halben Stunde habe ich das noch geschafft) und auf "edit" klicke, öffnet sich GUIDE mit einem komplett schwarzen Hintergrund. Soll ich hier irgendwie spezifizieren, wei mein GUI bei dem aktiven Panel aussehen soll? Ich kann jedoch "nichts sehen"...

3. Die Panels sehen nicht wirklich schick aus. Zuerst einmal bräuchte ich eine Linie unter den Panels, die sich über das gesamte GUI horizontal erstreckt. Wie mache ich das?


Bin für jede Hilfe zu einem der Punkte dankbar,
Wimme
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: 30.05.2012, 21:01     Titel: Re: Input und Output Tab/Registerkarte
  Antworten mit Zitat      
Hallo Wimme,

Mit welcher Matlab Version arbeitest Du? In modernen Versionen is UIPANEL hilfreich. UITAB ist nicht dokumentiert, läuft aber auch.

Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Wimme
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 15.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2012, 08:19     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für deine Antwort. Ich arbeite mit MATLAB R2012a.
Ich habe jetzt mal nach UIPANEL gesucht, gefunden habe ich
http://www.mathworks.de/help/techdoc/ref/uipanel.html
http://undocumentedmatlab.com/blog/.....nels-uitab-and-relatives/

Was mich jedoch etwas verwirrt: Ich arbeite eigentlich mit GUIDE. Kann ich UIPANEL und UITAB auch innerhalb GUIDE verwenden? Wenn nicht, kann ich GUIDE irgendwie mit UIPANEL und UITAB im Code kombinieren?
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: 02.06.2012, 00:38     Titel:
  Antworten mit Zitat      
Hallo Wimme,

GUIDE macht nichts magisches. Es erstellt ein FIG-File, welches eigentlich nur ein getarntes MAT-File ist, und setzt den dazugehörigen Code für die Callbacks in ein M-File. Wenn man das Design in GUIDE abgeschlossen hat, kann man das GUI also noch beliebig aufpeppen.
In den FileEchange-Seiten findet man ein paar Tools um das FIG-File in ausführbaren Code umzuwandeln, eines z.B. von Matt Fig.

Dies erlaubt zwar auch UITAB, UIPANEL und UITREE zu verwenden, allerdings ist es dann nicht mehr per GUIDE zu bearbeiten.

Ich verzichte grundsätzlich auf GUIDE, da ich Programme für Matlab 6.5 bis 2012 entwickle, was mit GUIDE schwierig ist.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 15.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2012, 14:42     Titel:
  Antworten mit Zitat      
hmm...ist weiß "natürlich" noch nicht, ob das Design meines GUIs abgeschlossen ist und würde mir daher eigentlich gerne die Möglichkeit offen halten, GUIDE weiter für das Design des GUIs zu verwenden.

Schade, dass ich dann uipanel etc nicht verwenden kann! Sad Ich finde, MathWorks sollte diesbezüglich nachbessern!

Ich habe mir eine Lösung überlegt, aber die ist etwas umständlich...:
Ich könnte mir zwei Panel und zwei Buttons in GUIDE vernehmen und durch die Buttons die visibility property der Panels kontrollieren. Ich weiß aber nicht, ob ich die Buttons dann so designed kriege, dass die wirklich wie Tabs aussehen und zweitens habe ich in GUIDE dann zwei Panels übereinander liegen, was natürlich auch alles andere als schön ist!

Aber etwas anderes bleibt mir wohl nicht übrig, oder? Bzw. die einzige Alternative wäre dann, dass ich meine FIG-File in Code umwandel und dann ohne GUIDE weiter mache...
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: 02.06.2012, 21:43     Titel:
  Antworten mit Zitat      
Hallo Wimme,

Man kan UIPANELs übrigens mit GUIDE verwenden. Ich vermute, Du meinst UITAB und UITABGROUP.

Man kan das Design der GUI auch später noch manuell ändern.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 15.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2012, 11:48     Titel:
  Antworten mit Zitat      
hallo Jan,

achso, ja, einfach das ganze normale Panel in GUIDE.

Ich habe mir auch noch einmal dieses Beispiel angeguckt
http://www.mathworks.com/matlabcentral/fileexchange/1741
wo es ähnlich wie von mir in meinem letzten beschriebenen Post gemacht wird.

Das wird zwar irgendwie häßlich, aber etwas besseres habe ich noch nicht gefunden.
Eine Frage diesbezüglich hätte ich noch:
Ist es möglich bei einem Pushbutton den Rahmen dahingehend zu verändern, dass er unten keinen Rahmen hat, sondern nur links, rechts und oben?

Danke,
Wimme

_____________________


Habe leider nun noch ein anderes Problem. Ich habe also zwei Panels übereinander gelegt und versuche mit Hilfe der Buttons "Input_Tab" sowie "Output_Tab" deren visibility so zu steuern, dass die Panels sich wie zwei Registerkarten benehmen.
Das Ganze mache ich bisher so:
Code:

% --- Executes on button press in Input_Tab.
function Input_Tab_Callback(hObject, eventdata, handles)
% hObject    handle to Input_Tab (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% tab for input has been called -> change appearance of tabs
set(hObject,'FontWeight','bold');
set(hObject,'BackgroundColor',[0.941,0.941,0.941]);
set(handles.Output_Tab,'FontWeight','normal');
set(handles.Output_Tab,'BackgroundColor',[0.831,0.816,0.784]);

% make all other tab-panels invisible and this one visible
set(handles.Output_Panel,'Visible','off');
set(handles.Input_Panel,'Visible','on');

% --- Executes on button press in Output_Tab.
function Output_Tab_Callback(hObject, eventdata, handles)
% hObject    handle to Output_Tab (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% tab for output has been called -> change appearance of tabs
set(hObject,'FontWeight','bold');
set(hObject,'BackgroundColor',[0.941,0.941,0.941]);
set(handles.Input_Tab,'FontWeight','normal');
set(handles.Input_Tab,'BackgroundColor',[0.831,0.816,0.784]);

% make all other tab-panels invisible and this one visible
set(handles.Input_Panel,'Visible','off');
set(handles.Output_Panel,'Visible','on');
 


Leider funktioniert das nur, wenn das "Input_Panel" sichtbar sein soll. Das Output_Panel bleibt unsichtbar, auch wenn ich auf den Output_Tab-Button klicke.

Hat jemand eine Idee warum?
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: 03.06.2012, 14:06     Titel:
  Antworten mit Zitat      
Hallo Wimme,

Yair Altman hat beschrieben, wie man einen Button ganz ohne Rahmen erstellt (die Begriffe sollten für Google ausreichen).
Wenn Du wirklich einen halben Rahmen brauchst, kannst Du stattdessen ein Image nehmen, welches so aussieht wie ein Button. Dann kann ein Klicken über die ButtonDownFcn abgefragt werden statt über den Callback, das macht aber keinen großen Unterschied.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 15.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2012, 14:49     Titel:
  Antworten mit Zitat      
das mit dem Image ist eine Idee, das werde ich eventuell verfolgen.

Zu meinem obigen Code-Schnipsel hast du keine Idee? Ist denn meine Problembeschreibung verständlich?
Private Nachricht senden Benutzer-Profile anzeigen
 
Wimme
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 15.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2012, 21:33     Titel:
  Antworten mit Zitat      
ich weiß jetzt, woran es liegt. Mein zweites Panel wird aus irgendeinem Grund ein "Kind" vom ersten Panel und bleibt daher auch immer invisible. Das kann ich im Object Browser sehen. Wie kann ich diese Eltern-Kind Beziehung ändern (verwende GUIDE)?
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.