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

uitable Breite der Zeilentitel

 

lizard
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 19.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2010, 09:30     Titel: uitable Breite der Zeilentitel
  Antworten mit Zitat      
Ich benutze ein uitable um diverse Variablen einer Simulink S-Function über get_param darzustellen. Dabei übergebe ich die jeweiligen Variablennamen über:
Code:

rownames={'lambda' 'ventil' 'klappe' ....};
set(handles.para_tab, 'RowName', rownames);
 


Um die Tabelle in meiner GUI zu formatieren würde ich nun gerne die Spaltenbreite anpassen. Für die regulären Zellen der Tabelle funktioniert das auch bislang. Ist es zusätzlich möglich, die Spaltenbreite der RowNames auszulesen oder anhand der übergebenen Namen zu ermitteln?
Private Nachricht senden Benutzer-Profile anzeigen


josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 19.05.2010, 09:58     Titel:
  Antworten mit Zitat      
Du kannst die Breite der Spalte mit dem Befehl zur Eingabe der Pixelwerte ändern.
Code:

set(handles.para_tab, 'ColumnWidth', PixelValue);
 


Und mit der Positionseigenschaften kannst du auch die Breite und und Höhe der gesamttabelle ändern.

Code:

set(handles.para_tab, 'Position', [x y breite hoehe]);
 


Gruß

Jose
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
lizard
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 19.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2010, 10:06     Titel:
  Antworten mit Zitat      
Geht das nicht nur für die tatsächlichen Tabellenzellen die ich mit mit 'Data' befüllen kann? Ich möchte herausfinden wie breit die Spalte mit den Zeilentiteln ist, da sie ja bei der Gesamtbreite meiner Tabelle hinzukommt.
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 19.05.2010, 10:32     Titel:
  Antworten mit Zitat      
uitable macht es automatisch. bei größeren Tabelle wird das Schiebglied automatisch eingesetzt um die Tabelle hin und her zu schieben und den Inhalt anzuschauen.
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
lizard
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 19.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2010, 10:47     Titel:
  Antworten mit Zitat      
Die 'auto' Breite für meine Zellen ist mir aber zu breit, deswegen möchte ich sie von Hand setzen.

Positionierung auf dem Panel:
Code:

    panel_pos = get(handles.para_panel, 'Position'); % um Höhe und Breite des Panels zu ermitteln
    tab_pos = get(handles.para_tab, 'Extent'); % um errechnete Ausmaße der Tabelle zu ermitteln

   
     %width
    if (panel_pos(3) > tab_pos) % ist die errechnete Tabellenbreite kleiner als das Panel
        tab_pos(3) = tab_pos(3); % nimm die errechnete Breite
    else
        tab_pos(3) = 1; % ansonten setze die Tabellenbreite auf die Panelbreite
    end
   
    %height
    if (panel_pos(4) > tab_pos(4))
        tab_pos(4) = tab_pos(4) + .08;
    else
        tab_pos(4) = .96;
    end

    panelpix_pos = getpixelposition(handles.para_panel);
    column_width = (panelpix_pos(3)-102)/m; % Breite des panel in pixeln / Anzahl der Spalten m
   
    set(handles.para_tab, 'Position', tab_pos,...
        'ColumnWidth' , {column_width},'Visible' , 'on');
 


Damit die Tabelle dann nicht zu breit ist, sprich eine Scrollbar braucht muss ich von der Panelbreite die Breite der Zeilennamen abziehen. Momentan der Wert 102 in meiner Berechnung. Diesen Wert würde icch natürlich gerne anhand des Inhalts ermitteln, da er sich ja auch abhängig vom Inhalt verändert. Ich weiß, dass ich zusätzlich noch die Spaltenbreite vom Inhalt der Zellen abhängig machen muss, dass dann auch alles angezeigt wird.

Grundsätzlich interessiert mich nur, ob es möglich ist zu ermitteln, wie breit eine Spalte mindestens sein muss um den Inhalt anzuzeigen und vor allem ob die Größe der RowNames-Spalte, welche ja nicht zum Inhalt der Tabelle gehört, beeinflussbar ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
lizard
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 19.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2010, 13:11     Titel:
  Antworten mit Zitat      
Konnte noch nicht herausfinden, ob das was ich oben beschrieben haben überhaupt funktioniert, hab die Anordnung der Tabelle mittlerweile auf anderem Weg realisiert. Da meine neue Lösung, meine gestellte Frage nicht beantwortet werden ich den Code nicht posten. Für den Fall, dass doch jemand interesse hat einfach bei mir melden.

Ich lass den Thread geöffnet, sollte wieder erwarten doch noch jemand eine Antwort haben.

Trotzdem Danke für Eure Unterstüztung
Liz
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2015, 09:17     Titel: Lösung, Breite der Row-Headers einstellen
  Antworten mit Zitat      
Die Lösung ist hier beschrieben, geht über Java Tricks:
http://www.mathworks.com/matlabcent.....view_thread/298335#802680

Man braucht aber noch die Funktion findjobj.m, findet man hier:
http://www.mathworks.com/matlabcent.....jects/content//findjobj.m
 
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.