ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

textwrap

与えられた Uicontrol 用に文字列行列を改行

構文

outstring = textwrap(h,instring)
outstring = textwrap(h,instring,columns)
[outstring,position] = textwrap(...)

説明

outstring = textwrap(h,instring) は、文字列のセル配列 outstring を返します。これはハンドル番号 h の Uicontrol の内部に適合します。instring はセル配列で、各セルはテキストの 1 行を含みます。outstring は、セル配列の書式で適切に改行された文字列行列です。入力文字列の各セルは、1 つの段落と考えられます。

outstring = textwrap(h,instring,columns) は、各行が columns 文字で改行された outstring を返します。文字数にはスペースも含まれます。

[outstring,position] = textwrap(...) は、Uicontrol の推奨された位置を Uicontrol の単位で返します。position は、xy 方向の複数行のテキスト範囲を検討します。

関数 textwrap は、入力セル配列の元の改行を維持して、新しい改行を追加します。これは、正規化された単位を含むあらゆるタイプの Units で Uicontrol の位置を計算できます。

テキストの Uicontrol に改行された 2 つの文字列を配置します。左側の Position は、textwrap により pixelsUnits で計算され、右側の PositioncharactersUnits で手動計算されます。

figure('Position',[560 528 350 250]);
% Make a text uicontrol to wrap in Units of Pixels
% Create it in Units of Pixels, 100 wide, 10 high
pos = [10 100 100 10];   
ht = uicontrol('Style','Text','Position',pos);
string = {'This is a string for the left text uicontrol.',...
          'to be wrapped in Units of Pixels,',...
          'with a position determined by TEXTWRAP.'};
% Wrap string, also returning a new position for ht
[outstring,newpos] = textwrap(ht,string) %#ok<NOPRT>

outstring = 
    'This is a string for'
    'the left text'
    'uicontrol.'
    'to be wrapped in'
    'Units of Pixels,'
    'with a position'
    'determined by'
    'TEXTWRAP.'

newpos =
    10   100    91   124

set(ht,'String',outstring,'Position',newpos)

% Make another text uicontrol to wrap to a column width of 18
colwidth = 18;
% Create it in Units of Pixels, 100 wide, 10 high
pos1 = [150 100 100 10]; 
ht1 = uicontrol('Style','Text','Position',pos1);
string1 = {'This is a string for the right text uicontrol.',...
          'to be wrapped in Units of Characters,',...
          'into lines 18 columns wide.'};
outstring1 = textwrap(ht1,string1,colwidth);
% Reset Units of ht1 to Characters to use the result
set(ht1,'Units','characters')
newpos1 = get(ht1,'Position')

newpos1 =
   29.8000    7.6154   20.0000    0.7692

% Set new Position in Characters to be specified colwidth
% with height the length of the outstring1 cell array + 1.
newpos1(3) = colwidth; 
newpos1(4) = length(outstring1)+1

newpos1 =
   29.8000    7.6154   15.0000   10.0000

set(ht1,'String',outstring1,'Position',newpos1)

詳細

すべて折りたたむ

ヒント

GUI をプログラミングするときは、CreateFcn 内部で、copyobj または textwrap (これは copyobj を呼び出します) を呼び出さないでください。uicontrol オブジェクトをコピーすると、CreateFcn コールバックが繰り返し始動します。これにより、一連のエラー メッセージが表示されるようになります。

参考

|

この情報は役に立ちましたか?