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

select all button in UITABLE

 

Barbara26

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.07.2015, 17:13     Titel: select all button in UITABLE
  Antworten mit Zitat      
Hallo liebe Community,

sitze an meinem ersten GUI und habe nach Wochen Arbeit eine UITABLE, in welcher checkboxes stehen, die vom User angeklickt werden können. Da es sehr viele Zeilen sind, möchte ich einen Button machen, beim dem alle Checkboxes gechecked werden, also ein "select all" Button. Ich habe nur keinen richtigen Ansatzpunkt dafür.

Ich würde erstmal alle Logicals auf 1 setzen. Dann muss ich das noch der uitable mitteilen. Wie kann man das machen?

Code:

for( i = 1:length(checkval) )
    % set each logical to 1
    checkval(i) = 1;
end
 


Besten Dank für jede Hilfe, habe im Netz nichts gefunden, bzw hat nicht geklappt.

Barbara26


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.07.2015, 17:34     Titel:
  Antworten mit Zitat      
kannst du ein minimalbeispiel zur verfügung stellen mit dem man rumspielen kann? also halt nur die tabel mit 3 einträgen oder so und dem button der noch nicht macht was er soll.
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Barbara26

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.07.2015, 18:31     Titel:
  Antworten mit Zitat      
Oder bevor ich mir die Arbeit mache, gibt es eine Möglichkeit, den default value der checkboxes in der UITABLE auf checked zu setzen?

VIelen Dank!

B26
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.07.2015, 18:48     Titel:
  Antworten mit Zitat      
so da du dir keine mühe machen willst musste ich das jetzt machen.
du musst mit set den eintrag in Data auf true setzen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.07.2015, 19:12     Titel:
  Antworten mit Zitat      
Danke für Deine Mühe. Könntest Du mir auch noch sagen wie das aussehen könnte.
Ich bin kurz vor dem aufgeben, hier mein Versuch:

Code:

set(handles.uitable3,'Value',1);
 


Fuktioniert leider nicht...

Danke und Gruß
B26
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.07.2015, 19:22     Titel:
  Antworten mit Zitat      
hab auch gesagt in data und nicht in value
zb in der createFcn
Code:
set(hObject,'Data',{'test',true;'2',true})

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
B26

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2015, 09:44     Titel:
  Antworten mit Zitat      
VIelen Dank, das hat schon sehr viel weitergeholfen, bin einfach mit mit diesem set Befehl nicht klargekommen.

Wie kann ich nun die checkboxes auf true stellen, wenn sie bei mir in der 4. Spalte steht?

When ich mein GUI starte, hat die uitable Daten der Form einer 73 x 3 cell:

Code:
'String 1' 'String 2' [ 1.234]
...
 


In der vierten Spalte stehen die logicals für die checkboxes.

Vielen lieben Dank im Voraus.
Ihr seid die Besten!

B26
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 27.07.2015, 10:32     Titel:
  Antworten mit Zitat      
wie kann deine tabelle die 73x3 sein und eine 4. spalte haben?
ich hab doch bereits geschrieben wie man was auf true setzt. was hat denn bei deinem versuch nicht geklappt? welche fehler sind aufgetreten? code beispiele bitte. etc-
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
B26

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2015, 10:58     Titel:
  Antworten mit Zitat      
Ich lese am Anfang einmalig ein file ein, als Input für die Tabelle.

Code:


% Reaktionen einlesen in die Tabelle
[numerics, strings]=xlsread('uitableinput.xlsx', 'A1:C72')

% num in cell umwandeln
conv = num2cell(numerics);

% Input matrix für Tabelle
input = [strings conv];
 


Dann wähle ich die Variable "input" manuell im Table Property Editor aus. Die Variable ist ja wie erwähnt eine 73 x 3 cell. Die vierte Spalte habe ich im Table Property Editor als "logical" deklariert, somit erscheint automatisch eine Checkbox. Diese funktionieren auch mit dem auswählen etc. (siehe Abb 1) und ich bekomme sie mit get ausgelesen (zB hier 4 manuell gechecked):

Code:
readtab = get(hObject,'Data')


output:
Code:
readtab =

    'Debenylation'          '-CH2C6H4'           [-90.0]    [1]
    'Redutive Debrom...'    '-Br'                [-78.9]    [1]
    'Triflorometyl ...'     '-CF3+H'             [-67.9]    [1]
    '2 x Reduive De...'     '-Cl2+2H'            [-67.9]    [1]
    'Desuonation'           '-SO2'               [-63.9]    [0]
    'Oxative debrom...'     '-Br+OH'             [-61.9]    [0]
    'Tert-but-deal...'      '-C4H8'              [-56.0]    [0]
    'Hysis of Ni...'        '-NO2+H'             [-44.9]    [0]



Verwende ich nun set in der Creatfcn, wie Du beschrieben hast, bekomme ich das (Abbildung 2).

Ich schaffe es nun nicht, meine Variable input entweder so anzupassen bzw oder die checkboxes auf "true" zu setzen, dass beim Start der GUI jede Zeile in der uitable gechecked ist.

Da es 73 Zeile sind möchte ich, dass alle per default gechecked sind.

Danke
B26

Abb 2.jpg
 Beschreibung:

Download
 Dateiname:  Abb 2.jpg
 Dateigröße:  11.39 KB
 Heruntergeladen:  428 mal
Abb 1uitable.jpg
 Beschreibung:

Download
 Dateiname:  Abb 1uitable.jpg
 Dateigröße:  55.39 KB
 Heruntergeladen:  500 mal
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 27.07.2015, 11:05     Titel:
  Antworten mit Zitat      
ich finde es toll wie du in drei zeilen code 3 interne matlab funktionen überschreibst Smile das solltest du dir abgewöhnen Wink
Zitat:
Verwende ich nun set in der Creatfcn, wie Du beschrieben hast, bekomme ich das (Abbildung 2).

ja natürlich weil du halt data auf die werte setzt.d u must halt data auf die werte setzen die du in input hast wobei die 4. spalte vom cellarray halt alles true sein muss.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2015, 11:48     Titel:
  Antworten mit Zitat      
Very Happy ja danke - sagen wir so, ich befinde mich noch in einem Lernprozess... Laughing

Ja das habe ich vermutet und probiert, aber ich kriegs nicht gebacken. Ich verstehe die Syntax an dieser Stelle einfach nicht Confused Confused

Ich dachte:

1.) Logicals in die 4. Spalte schreiben im input file. Geht aber nicht, da die nicht in cell umwandelbar.

2.) ok, in der CreatFcn hole ich mir die Daten aus der Tabelle:
Code:
readtab = get(hObject,'Data')
 


und dann will ich alle Zeilen auf true setzen, Ich checks einfach nicht:

Code:

% das alles geht nicht

test1 = {readtab(:,4),true}
test2 = {readtab,true}
test3 = {readtab(:,1:3),true}

 


dann so probiert:
Code:

% vector mit Einsen
logs = ones(72,1);

% in logicals umwandeln
log1 = logical(logs);

% Ersten 3 Spalten aus uitable und eine logical zusammenfügen
returndata = {readtab(:,1:3) log1}

% an uitable zurückgeben
set(hObject,'Data',returndata)

 


Gibt Fehlermeldung:
Code:
While setting the 'Data' property of Table:
Values within a cell array must be numeric, logical, or char



Das ist alles wahrscheinlich völlig hahnebüchen, aber das Beste was ich nach 4 Tagen zu bieten habe...sorry
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 27.07.2015, 11:59     Titel:
  Antworten mit Zitat      
Code:

readtab = get(hObject,'Data')
readtab(:,4)={true}
set(hObject,'Data',readtab)

das?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2015, 13:10     Titel:
  Antworten mit Zitat      
yes. Funktioniert!
Wahnsinn, merci vielmals!

made my day.
 
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.