1

インターフェイスを使用したmatlabについて簡単な質問があります。
最初にオブジェクト (たとえば、コマンド UI テーブルを含むテーブル) を非表示として宣言し、それを表示にすると、それが機能することがわかりました。つまり、図に変更が効果的に表示されます。
それどころか、これが私の問題です。最初にオブジェクトを可視と宣言し、それを不可視にした後、それは機能しません。つまり、オブジェクトの不可視性を取得しません。

例を作る:

figure;
h_tabell=uitable(gcf,'vis','off','data',randn(3));
h_tabell=uitable(gcf,'vis','on','data',randn(3)); %

ここで、テーブルが表示されていることがわかります

%ここで、そのテーブルを再び非 set(h_tabell,'vis','off') %表示にしたいのですが、ここでは、テーブルが既に表示されていることがわかります

私のプログラムでは、オブジェクトが表示され、ユーザーが必要とする場合は、同じオブジェクトを非表示に設定したいので、それが必要です。

誰でも私を助けることができますか?

4

1 に答える 1

2

setオブジェクトのプロパティを変更するには、Matlab 関数のみを使用してください。

ここでは を 2 回呼び出しますuitable

  • 最初の呼び出しは、目に見えないテーブルを作成します
  • 2 番目の呼び出しは別のテーブルを作成します (変数を新しいハンドルで上書きしますh_tabell) が、今回は表示されます

Figure に 2 つの子があることを確認することで、これを確認できます。

children=get(gcf,'children');

ハンドル h_tabell によって参照されるオブジェクトの可視プロパティを変更しようとすると、2 番目のテーブルにのみ適用されます。

次のコードは期待どおりに機能し、テーブルを 1 つだけ作成します。

figure;
h_tabell=uitable(gcf,'visible','off','data',randn(3));
% Switch the table to visible
set(h_tabell,'visible','on');
% Switch it back to invisible
set(h_tabell,'visible','off');
于 2011-12-30T16:21:18.490 に答える