0

たとえば、4 つの列で構成される uitable を作成しました。

colu={{'Sweet' 'Beautiful' 'Caring'},'numeric', 'numeric','numeric'}
dat={1 2 3 []; 4 5 6 []; 7 8 9 []};
A=uitable('outerposition',[0 0 1 1],'ColumnFormat',colu,'Data',dat);

私が今やりたかったことは、コードが実行され、最初のセルのポップアップで「Sweet」を選択すると、セル (1,4) に dat(1,1) が表示されるか、「 1 列目の 2 番目のセルの Beautiful' では、セル (2,4) に dat(2,1) が表示されます。uitable の外側の popupmenu とは異なり、get(popup,"value') を使用できません。

どうすればやりたいことができるでしょうか?前もって感謝します!

4

1 に答える 1

1

CellEditCallback プロパティを使用する必要があります。これは、セルが編集されたときにトリガーされるグローバル コールバックです。個々のセルに設定できるコールバックはありません。

開始するための疑似コード テンプレート:

function cellEditCallback(hTable, editEvent)
    % get changed index
    changedIndex = editEvent.Indices;
    if changedIndex is a popup-cell:
        % check new value
        newValue = editEvent.NewData;
        % set data in appropriate cell to corresponding value
        ...

余談ですが、この例の columnFormat はデータと一致しません。列1をポップアップ列として指定しますが、データによると列4である必要があります。また、ポップアップを機能させるためにに変更[]する必要がありました.''set('ColumnEditable', logical([0,0,0,1]))

例を参照してください

http://www.mathworks.de/products/matlab/examples.html?file=/products/demos/shipping/matlab/uitabledemo.html

より包括的な例の uitable アプリケーションについては。

于 2013-11-20T08:18:33.053 に答える