uitableで指定のセルを表示する方法

guideでuitableとedittext,pushbuttonを作成しています。uitableはn×1のデータで、各セルに文字列が入っています。
私が行いたいことは以下の通りです。
・edittextに文字を入れてpushbuttonを押すと、edittextの文字列と一致するuitableのセルを探す。
・上記のセルがある場合、そのセルを選択orスクロールを動かして表示する。
(複数存在する場合は最初に見つけたセルに対して行う。)
このような動作を作成することは可能でしょうか。
MATLABのバージョンはR2011bです。
以上になります。よろしくお願いいたします。

 Risposta accettata

mizuki
mizuki il 10 Nov 2016
Modificato: mizuki il 10 Nov 2016

3 voti

uitable の機能には 選択しているかしていないかが分かるプロパティがないため、カーソルを動かすことができません。
代わりに、該当するセルの文字をハイライトするのではいかがでしょうか。
edittextに文字を入れてpushbuttonを押すと、edittextの文字列と一致するuitableのセルを探す方法としては、pushbutton のコールバックに以下の様な文字列比較のコードを入れました。
allstr = get(handles.uitable1, 'Data');
str = get(handles.edit1, 'String');
idx = strcmp(allstr, str);
uitable1 の文字列 あいうえお と edit1 の文字列を比較しています。
もし検索して一番初めの一致のみが欲しい場合は strcmp の代わりに find 関数を使用します。
ハイライトについては以下ページを参考にしてHTMLタグを追加しました。
詳細については添付 guide_uitable_ex.m をご確認ください。

2 Commenti

sekkyryo
sekkyryo il 10 Nov 2016
mizukiさん、ありがとうございます。
GUIDEだと動かせないんですね。理解しました。
となると、mizukiさんがおっしゃる通り別のアプローチを考えたほうがよさそうですね。
listboxのプロパティ"Value"と同様なものをuitableにもつけてほしいですね。
mizuki
mizuki il 10 Nov 2016
Modificato: mizuki il 10 Nov 2016
GUIDE も含めて、uitable の機能として入っていない状況です。 以下のように java の機能を使えばできそうですが、正式サポート機能ではないので私からの回答は控えさせてください。
おっしゃる通り、選択したセルが簡単に分かる機能は欲しいですね。
現在 GUIDE に代わる機能として AppDesigner という機能が出てきていますので GUIDE では難しいかもしれませんが、AppDesigner での要望リクエストは可能かと思います。

Accedi per commentare.

Più risposte (0)

Categorie

Prodotti

Richiesto:

il 10 Nov 2016

Modificato:

il 10 Nov 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by