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

GUI mit uitabpanel

 

GUI_Neuling
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 22.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.05.2012, 12:54     Titel: GUI mit uitabpanel
  Antworten mit Zitat      
Hallo zusammen,

nach dem die Variante mit GUIDE zwar läuft, aber nicht wirklich gut in der Flexibiltät ist, habe ich jetzt manuell eine GUI erstellt. Hier habe ich jetzt aber das Problem, dass ich nicht auf das Handle des Popupmenues zu greifen kann. Könnt ihr mir sagen, was ich noch für einen blöden Fehler drin habe?

Code:

function [] = GUI_Test()

hfig = figure('units','pixels',...
              'position',[500 350 400 250],...
              'menubar','none',...
              'name','Dimensionierung',...
              'numbertitle','off',...
              'resize','on');
set(hfig,'color',[0.9 0.9 0.9])  ;
   
% Creating the tabs

htab(1)= uitabpanel(...
  'Parent',hfig ,...
  'TabPosition','lefttop',...
  'Position',[0,0.5,0.5,0.5],...
  'PanelBorderType','line',...
  'Title',{'Test1','Test2'},...
  'CreateFcn',@CreateTab1);

 function CreateTab1(htab,evdt,hpanel,hstatus)

% Feld1                
  edit_feld1 = uicontrol('Parent',hpanel(1),...
                     'style','tex',...
                    'unit','normalized',...
                    'posit',[0.13,0.3,0.2,0.25],...
                    'string','1234');    

% Feld 2
  popup_auswahl = uicontrol('Parent',hpanel(1),...
                     'style','pop',...
                    'unit','normalized',...
                    'posit',[0.13,0.6,0.2,0.25],...
                    'Callback',{@param_call,edit_feld1},...
                    'string',{'1','2','3'});                  
hpanel = getappdata(htab,'panels');


% Function
function param_call(hObject,eventdata,handles,edit_feld1)

    set(handles.edit_feld1,'String','TEST');
 

 


Bei mir kommt immer die folgenden Fehlermeldung:

??? Attempt to reference field of non-structure array.

Error in ==> GUI_Test>param_call at 47
set(handles.edit_feld1,'String','TEST');

??? Error while evaluating uicontrol Callback


Wo referenziere ich falsch? Wäre super, wenn ihr mir helfen könnt!
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.06.2012, 14:38     Titel:
  Antworten mit Zitat      
Hey,

ich weiß nicht genau was für ein tabpanel du jetzt benutzt, weil so wie du es beschrieben hast kenne ich das nicht. Das ist halt das Problem wenn man externe Funktionen benutzt. Zudem verstehe ich nicht warum es dir nicht flexibel genug ist das mit GUIDE zu machen. Des weiteren weiß ich nicht was du genau willst (nur einmal beim öffnen der gui eine definierte Anzahl von Tabs erstellen, oder welche via button oder what ever vom user auch hinzufügen lassen).

Anbei ein paar Seiten in denen beschrieben wird wie man die undokumentierte funktion (Uitab) in Matlab nutzen kann. Diese würde ich vorziehen oder halt gleich komplett in Java...

http://undocumentedmatlab.com/?s=uitab

Ich würde an deiner Stelle deinen Code auch mal debuggen, dann wirst du schnell erkennen, dass deine Variablenübergabe bei dem Callback des 'popup_auswahl' nicht mit den Eingabevariablen deiner Funktion 'param_call' zusammenpasst. Die Funktion erwartet 4 du übergibst aber nur 3 (standardmäßig werden hobj und evd übergeben (mit deinem handle edit_feld1 macht das also 3), die Variable handles ist eine von GUIDE erstellte Variable die dir nicht automatisch zur verfügung steht).

Greetings
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.06.2012, 14:41     Titel:
  Antworten mit Zitat      
Also einfach

Code:

function param_call(hObject,eventdata,edit_feld1)
set(edit_feld1,'String','TEST');
 


dann sollte zumindest das klappen...

Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
GUI_Neuling
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 22.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2012, 11:46     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank! Damit funktioniert es! Manchmal sieht man den Wald vor lauter Bäumen nicht Rolling Eyes
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.