GUI のテキストボックスに​複数行を入力して内容​をコマンドウィンドウ​で評価をする方法はあ​りますか?

19 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 3 月 25 日
GUIDE でテキストボックスを含む GUI を作成しています。テキストボックスに複数行を入力したいと考えています。行を追加するために改行キーを押すと、行の追加は実行されず、コールバックが評価されます。

採用された回答

MathWorks Support Team
MathWorks Support Team 2016 年 12 月 30 日
まず、エディットボックスを複数行にするには、テキストボックスの "max" uicontrol プロパティを変更します。
uicontrol プロパティの ’max' の値と 'min' の値に関して、
MAX - MIN > 1
であれば、テキストボックスに複数行入力することが可能です。
MAX - MIN <= 1
の場合はテキストボックスには1行しか入力することができません。
"max" プロパティは、 GUIDE からとコマンドラインからどちらからでも変更できます。
1. GUIDE から変更する方法
1) エディットテキストをダブルクリックしてプロパティインスペクタを起動
2)  MAX の値を設定したい行数に変更
2. コマンドライン、あるいはスクリプトで変更する方法
SET コマンドを以下の文法で使用します。
set(h_edit,'Max',N);
ここで h_edit はテキストボックスのハンドルで、N は MAX 値として設定したい値を指定します。
注意点:テキストボックスが1行の場合と複数行の場合、コールバックの実行のされ方が異なります。
次に、テキストボックス内のテキストをコマンドとして評価する方法は、二通りあります。
1. EVALMCW コマンドを使用する方法
MATLAB コマンドウィンドウ上で
evalmcw(h_edit)
と実行します。h_edit はテキストボックスのハンドルです。
(なお、EVALMCW コマンドは、ドキュメント化されていない関数です)
2. FOR ループを使用する方法
以下のように実行します。
s = get(h_edit,'string'); % h_edit はテキストボックスのハンドル
[row, column] = size(s);
for i = 1:row
eval(s{i,:}) % 各行を MATLAB コマンドプロンプトで評価
end

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange基本的な設定 についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!