Verfasst am: 16.10.2017, 10:45
Titel: Zelle einer Column
Ist es möglich, dass wenn ich auf eine Zelle einer Spalte klicke ein Fenster erscheint, in welcher sich ein .txt_file befindet und ich es dadurch auswählen kann?
Ich hoffe ihr wisst was ich meine...
ich wollte auch schon in jede Zelle ein Pop-Up-Menü einfügen dieser Files aber, so wie es aussieht gibt es dazu keine Lösung, denn ich komme auf keine und finde auch keine Anhaltspunkte mit denen ich arbeiten könnte -.-
Bin am verzweifeln nämlich, denn ich versuche das ganze mittlerweile seit einer Woche zu realisieren und ich finde keine Lösung -.-
Ich wäre sehr verbunden wenn jmd mir zumindest etwas weiterhelfen könnte ...
Also mit meinem Code (siehe Anhang) versuche ich wenn ich jetzt zum Beispiel eine Zelle der Column (P_i-Transient) anklicke, so will ich das ein Fenster auftaucht in dem ich meine .txt-Datei habe oder eine .csv, je nachdem halt ...
Ich denke ich muss dazu Callbacks verwenden aber ich weiß leider nicht wie ich das einbinden soll oder ob ich überhaupt richtig liege ...
uigetfile und listdlg glaub ich helfen mir nicht weiter hatte es schon damit versucht, aber vllt hab ich auch etwas falsch gemacht.
Der Code ist quasi mein Ausgangspunkt mit dem ich arbeiten will
Code:
% --- FIGURE -------------------------------------
handles.figure1 = figure(...
'Tag', 'figure1', ...
'Units', 'characters', ...
'Position', [102.824.2307692307692126.833], ...
'Name', 'Parameter', ...
'MenuBar', 'figure', ...
'NumberTitle', 'off', ...
'Color', [0.9410.9410.941]);
% --- UITABLE ------------------------------------- % Initialize empty string for components of the Data
Data=cell(16,5);
for i = 1:numel(Data)
Data{i} = '';
end
Willst du die Namen dieser Dateien haben oder deren Inhalt?
Was willst du dann jeweils damit machen?
ich will den Inhalt. links steht die Leistung und rechts die Zeitdauer in der ich die Leistung haben will (zum Beipsiel 10s lang 40W, dann 5s lang 30 Watt und so weiter). Das ganze dient dazu das mein Arduino dies später "einliest" und so weiß wie er sein PWM-Signal über eine PID-Regelung zu regeln hat.
Zitat:
Wie gesagt: poste bitte genau, was du versucht hast und vor allem, welche Probleme dabei aufgetreten sind.
1. habe es ja versucht mit :
Code:
tableDataNew= importdata('C:\bsp.txt',';');
tableData =get(handles.figure1,'Data');
for i = 1:size(Data,1)
Data{i} = tableDataNew{i};
end
Wenn es um die Ansteuerung von Arduino geht, ist die Frage, ob der Nutzer tatsächlich den Dateiinhalt innerhalb der GUI sehen soll oder ob es nicht besser ist, ihn eine Datei auswählen zu lassen (uigetfile).
Ich würde Data erst mal komplett aktualisieren und dann
Tut mir leid für die vielleicht dumme Frage aber was meinst du damit genau?
Zitat:
Wenn es um die Ansteuerung von Arduino geht, ist die Frage, ob der Nutzer tatsächlich den Dateiinhalt innerhalb der GUI sehen soll oder ob es nicht besser ist, ihn eine Datei auswählen zu lassen (uigetfile).
Ich will ja auch das ich oder ein anderer Nutzer der Gui, eine vorgefertigte .csv- oder .txt-Datei auswählen. Oder reden wir gerade aneinander vorbei?
Dass ich die Data-Eigenschaft nicht in der for-Schleife setzen würde, sondern zuerst die Variable in der for-Schleife belegen.
Zitat:
Ich will ja auch das ich oder ein anderer Nutzer der Gui, eine vorgefertigte .csv- oder .txt-Datei auswählen.
Für das Auswählen der Datei und vielleicht noch das Anzeigen des Dateinamens reicht uigetfile vollkommen. Aufwändig wird es erst, wenn du den Dateiinhalt tatsächlich in der GUI anzeigen willst.
Dass ich die Data-Eigenschaft nicht in der for-Schleife setzen würde, sondern zuerst die Variable in der for-Schleife belegen.
Ok danke für die Erklärung
Zitat:
Für das Auswählen der Datei und vielleicht noch das Anzeigen des Dateinamens reicht uigetfile vollkommen. Aufwändig wird es erst, wenn du den Dateiinhalt tatsächlich in der GUI anzeigen willst.
Nein nein den Inhalt der .csv-Datei soll nicht angezeigt werden, der Name reicht vollkommen.
wie verknüpfe ich nun aber die column P_-transient mit dem uigetfile-Befehl?
Habe eine generelle Frage vllt kannst mir ja einen Tipp geben oder einen anderen Vorschlag machen dazu:
Und zwar habe ich nämlich in meinem Gui zwei verschiedene Modi zur Auswahl:
1. manuell
2. vordefiniert
wenn ich 1. wähle, dann soll mir meine Table erscheinen in der ich eintrage wie viele Heizelemente habe, dann wenn die Leistung über die Zeit konstant ist (P_i-stationary) oder wenn es sich über die Zeit ändert dann soll das bisher besprochene passieren. und dann halt noch die Eintragung des Widerstandes der thermische Abhängigkeit besitzt und die der Spannung. das ganze speichere ich dann einfach noch über einen Save-Button.
wähle ich 2. kann ich das nun schon konfigurierte Setup wählen oder ein anderes erstelltes Setup
Denke ich zu kompliziert oder macht das schon so sinn ? oder hast du andere Tipps und Hinweise ?
letztlich musst du das beurteilen bzw. deine Endnutzer.
Ich würde dem Nutzer die Möglichkeit geben, die Einstellungen händisch zu ändern, und dann noch einen "Einstellungen laden"-Button, der vorgegebene Einstellungen lädt und dann damit die bisherigen Einstellungen überschreibt (ggf. vorher fragen, ob überschrieben werden soll).
ich komme auf keinen Code den ich auf irgendeine Weise einbauen könnte in meinen bereits vorhandenen Code ...
Code:
%%Test einlesen einer .csv-,.txt-Datein
function data_uitable1_CellSelectionCallback(hObject, eventdata, handles) % hObject handle to data_uitable (see GCBO) % eventdata structure with the following fields (see MATLAB.UI.CONTROL.TABLE) % Indices: row and column indices of the cell(s) currently selecteds % handles structure with handles and user data (see GUIDATA) % disp(eventdata)
handles.datatable_row = eventdata.Indices(1);
handles.datatable_col = eventdata.Indices(2);
guidata(hObject, handles);
hatte diesen Code am Ende angehängt, aber tun tut sich leider nichts wenn ich auf eine Zelle klicke leider...
Was ist falsch bzw. was muss ich machen?
Brauch ich eine CallBack-Funktion, bin leider etwas ratlos momentan wie ich meine Zellen der Column P_i-Transient verbinden kann ...
Edit andere Variante:
Code:
function uitable1_CellEditCallback(hObject, eventdata, handles)
Columndata = get(hObject,'Data');
ifstrcmp(Columndata(1,1),'User Defined')
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
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.