1

MatLab 内で GUI 用の単純なグリッドを作成しようとしています。ここでは、静的テキストが必要であり、編集可能なボックスが次のように入力として必要です。

+-----------------------+---------------+
|   Name 1   (1)        |  Input 1   (2)|
|                       |               |
+-----------------------+---------------+
|   Name 2   (1)        |  Input 2   (2)|
|                       |               |
+-----------------------+---------------+

GUI Layout ToolboxGrid クラスを次のコードで使用しています。

    % Parameters Section:
    staticPropPanel = uiextras.BoxPanel('Parent', paramPanel, 'Title', 'Signal Properties:');
    sPropGrid = uiextras.Grid('Parent', staticPropPanel, 'Spacing', 5);

    uicontrol('Style', 'text', 'Parent', sPropGrid, 'String', 'Number of Samples');
    nSamples = uicontrol('Style', 'edit', 'Parent', sPropGrid);
    uicontrol('Style', 'text', 'Parent', sPropGrid, 'String', 'Sampling Frequency (Fs) in Hz');
    Fs = uicontrol('Style', 'edit', 'Parent', sPropGrid);
    uicontrol('Style', 'text', 'Parent', sPropGrid, 'String', 'Carrier Frequency (Fc) in Hz');
    Fc = uicontrol('Style', 'edit', 'Parent', sPropGrid);

    set(sPropGrid, 'ColumnSizes', [-3 -1], 'RowSizes', [25 25 25]);

ただし、グリッドは、グリッドの「サイズ変更」後に正しい順序で要素を適切に追加していません。たとえば、前set(sPropGrid, 'ColumnSizes', [-3 -1], 'RowSizes', [25 25 25]);に実行すると、次のようになります。

サイズ変更前のグリッド

ただしサイズ変更が完了すると、次のようになります。

サイズ変更後のグリッド

正しい要素が正しい位置に配置されるようにサイズ変更の順序を変更するにはどうすればよいですか?

4

1 に答える 1

1

GUI Layout Toolbox に付属のドキュメントを見ると、次の例が表示されます。

f = figure();
g = uiextras.Grid( 'Parent', f, 'Spacing', 5 );
uicontrol( 'Parent', g, 'Background', 'r' )
uicontrol( 'Parent', g, 'Background', 'b' )
uicontrol( 'Parent', g, 'Background', 'g' )
uiextras.Empty( 'Parent', g )
uicontrol( 'Parent', g, 'Background', 'c' )
uicontrol( 'Parent', g, 'Background', 'y' )
set( g, 'ColumnSizes', [-1 100 -2], 'RowSizes', [-1 100] );

次の図が生成されます。

ドキュメントのグリッド

オブジェクトが最初に行ごとに追加され、次に列ごとに追加されることがわかります (赤 (1,1)、青 (2,1)、緑 (1,2)、空 (2,2) など)。あなたの場合、uictonrols.text最初のすべてを追加し、次にuicontrols.edit.

于 2013-05-23T17:18:42.017 に答える