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

Eingabe in ein uitable anpassen

 

Chris12345
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.05.2016, 10:40     Titel: Eingabe in ein uitable anpassen
  Antworten mit Zitat      
Hallo,

ich möchte ein Gui zum einlesen von Daten in Form einer Tabelle erstellen.
Ich habe bisher folgenden Code geschrieben:

Code:

function [] = test()
    close all;
    clc;
    clear;

figure('Position',[500 500 450 300]);

cnames = {'value','help'};
rnames = {'A','B','C','D'};
data = {'1000','enter number for A';...
        '0.4','enter number for B';...
        '4*10^(-5)','enter number for C';...
        '0.5','enter number for D'};
   
editableData = [true ,false];
           

t = uitable('Data',data,...
            'ColumnName',cnames,...
            'RowName',rnames,...
            'ColumnFormat',{'numeric'},...
            'ColumnEditable',editableData);

uicontrol('Style','pushbutton','Callback','uiresume(gcbf)',...
          'String','valid','Position',[315,135,70,25]);


% Set width and height
t.Position(3) = t.Extent(3);
t.Position(4) = t.Extent(4);

uiwait(gcf);

t.Data(:,1) %Ausgabe der Daten in der ersten Spalte

end
 


Meine Fragen sind nun:

1) Der Text in der zweiten Spalte ist zu lang und wird nicht vollständig angezeigt. Gibt es einen Resize Befehl der die Spalte dementsprechend vergrößert?

2) Ist es möglich zu erzwingen, dass in der ersten Spalte nur Zahlenwerte einzugeben sind?

3) Momentan stellt der Vektor: 'editableData ' die Tabelle so ein, dass die erste Spalte veränderbar ist und die zweite nicht. Ist es möglich innerhalb der ersten Spalte Werte auch auf nicht veränderbar zu stellen? zB wenn ich D konstant halten möchte, sodass der User diesen Wert nicht verändern darf, aber die anderen Werte der Spalte wohl anpassen kann.

Vielen Dank schonmal im Vorraus!
Mit freundlichen Grüßen
Chris
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 10.06.2016, 12:59     Titel:
  Antworten mit Zitat      
zu 1) Wenn man die ColumnWidth auf "auto" stellt, dann passt sich die Größe dem Headerlänge(Spaltennamen) an. Die Werte werden leider ignoriert.
Wenn diese Spalte je nicht veränderbar ist, dann setzte die Spaltenbreite doch manuell an. genau wie du ColumnEditable gesetzt hast.

Code:
t.ColumnWidth = {'auto', 100}


zu 2) Nein, muss du manuell prüfen. z.B in CellEditCallback(s. Punkt 3 weiter)
Die Eingabe 'numeric' bei ColumnFormat gilt nur der Formatierung der Zellen

zu 3) Nein, so geht es nicht. Du kannst aber die Eingaben immer prüfen lassen, schreibe dazu deine Funktion, und gebe diese dem uitable in CellEditCallback über. Jetzt wird immer deine Funktion aufgerufen, wenn die Zelle verändert wird.
Dort einfach die Originalwerte immer in einer Variable mitführen und bevor der Wert verändert wird gegen checken. Wenn es ein D ist, dann schreibe den Wert D zurück.
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.