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

Bild in UITAB

 

chris4aus
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2011, 05:17     Titel: Bilder verschieben
  Antworten mit Zitat      
Hallo!

Ich erstelle gerade eine GUI OHNE(!) guide.
Dazu habe ich Tabulator angelegt. Nun moechte ich 2 Bilder einfuegen. (Wollte eigentlich nur auf einem Tab einfuegen, aber bin auch zufrieden mit Bild einfuegen, damit in jedem Tab aufrufbar)
Der Text is jetzt da. Ein Bild kann ich zwar einfuegen und verschieben, aber sobald ich das zweite Bild lade, verschwindet das erste Bild.

Code:
% get screensize
scrsz = get(0,'ScreenSize');
% get main window
help_window1 = figure('MenuBar','none',...
                    'Name','GUI - erstellt ohne GUIDE',...
                    'ToolBar','none',...
                    'Position',[.1*scrsz(3),.1*scrsz(4),...
                                .85*scrsz(3),.85*scrsz(4)]);              

% tabs for help
h = uitabgroup('v0'); drawnow;
t1 = uitab('v0', h, 'title', 'Overview');
t2 = uitab('v0', h, 'title', 'Opening remarks');
t3 = uitab('v0', h, 'title', 'Parameters');
t4 = uitab('v0', h, 'title', 'Calculations');
t5 = uitab('v0', h, 'title', 'Remarks');

% overview text
overview_text = uicontrol(t1,'Style','text',...
          'Tag','overview_text',...
          'FontSize',12,...
          'Units','normalized',...
          'Background',[.96 .92 .92],...
          'HorizontalAlignment','left',...  
          'Position',[.01,.75,.5,.4]);
text_over{1} = 'Program can be used to set up a scaffold in the electrospinning machine.';
text_over{end+1} = 'It constructs a scaffold by setting up different major compound layers.';
text_over{end+1} = 'Each major compound layer consists of a specified number of minor compound layers.';
text_over{end+1} = 'Each minor compound layer consists of a certain number of layers, specified by the rotation angle.';
text_over{end+1} = 'Each layer within the minor coumpound layer consists of the same pattern though at different rotations.';
text_over{end+1} = 'It is built by using sub blocks which are placed next to each other.';
[outstring,newpos] = textwrap(overview_text,text_over);
set(overview_text,'String',outstring,'Position',newpos);
% % enter graphic
% axes_scaffold = uicontrol(t1,'Style','frame',...
%           'Tag','axes_scaffold',...
%           'Units','centimeters',...
%           'Background',[.96 .92 .92],...
%           'Position',[0.3,5.2,19,4]);
% axes(axes_scaffold);            % pick axes object
G1=imread('scaffold_111208_2.jpg','jpg');   % read in picture
image (G1);          % display picture
hand1 = gca;
set(hand1,'OuterPosition',[-.068 -.01 0.65 0.65]);
axis off
G2=imread('xy-view_scaffold.jpg','jpg');   % read in picture
image (G2);          % display picture
hand2 = gca;
set(hand2,'OuterPosition',[0.4 .34 0.65 0.65]);
axis off  
 


Wie definiere ich die beiden Bilder, damit beide zu sehen sind?
Alternativ muss ich beide Bilder noch mal als ein Bild erzeugen, aber dann habe ich das Problem mit dem Hintergrund.

Danke im Voraus,
Christiane
Private Nachricht senden Benutzer-Profile anzeigen
Gesplittet: 12.12.2011, 09:26 Uhr von Jan S
Von Beitrag Bilder in Gui einfügen aus dem Forum GUIs


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.12.2011, 09:35     Titel: Re: Bilder verschieben
  Antworten mit Zitat      
Hallo chris4aus,

Bitte hänge eine neue Frage nicht an einen alten beantworteten Thread an. Regel: neue Frage, neuer Thread.

Mit dem IMAGE-Befehl wird ein Bild im aktiven AXES-Objekt eingefügt. Dabei wir ein vorheriges Bild überschrieben. Lösung: Erstelle die AXES-Objekt explizit vor dem IMAGE-Befehl:
Code:
...
G1 = imread('scaffold_111208_2.jpg','jpg');   % read in picture
hand1 = axes('OuterPosition', [-.068 -.01 0.65 0.65], 'Visible', 'off');
image(G1, 'Parent', hand1);          % display picture
G2 = imread('xy-view_scaffold.jpg','jpg');   % read in picture
hand2 = axes('OuterPosition', [0.4 .34 0.65 0.65], 'Visible', 'off');
image(G2, 'Parent', hand2);          % display picture
 

Das Parent-Objekt explizit anzugeben ist sicherer. Solange kein Timer-callback dazwischen funkt, würde es hier auch ohne Parent laufen. Ich füge das aber grundsätzlich ein.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.12.2011, 00:05     Titel: Danke und sorry
  Antworten mit Zitat      
Hallo Jan!

Sorry, naechstes Mal eroeffne ich ein neuen thread.

Und jetzt klappt das super!
DANKE

Christiane
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.