2012-03-13 8 views
1

私は、それぞれ独自のuicontrolパネルを持つMATLAB GUIの機能性が異なります。 1つのパネルが選択されると、もう1つは不可視に設定され、その逆も同様です。ただし、ポップアップメニューの形式で同じ入力を共有します。メニューの「クローン」インスタンスを2番目のパネルに何らかの形で含めることはできますか?私はできるだけ多くの冗長なコールバックとuicontrolsを避けるためにしたいと思います。2台のパネルがMATLAB GUIでuicontrolを共有できますか?

答えて

2

uicontrolが図の直属の子だったのであれば、すべてのものの前に置くことができるかもしれません。

もっと簡単な解決策は、複数のuicontrolに対して同じコールバックを使用することです。プロパティエディタでは、コールバック名を変更して共通のコールバック関数に設定することができます。また、GUIのOpeningFcnにフィールド(例:myPopupH)を作成することもできます。この場合、同じ方法で動作するはずのポップアップのハンドルを保存します。次に、コールバックではgetコール(ポップアップメニューの変更された状態にアクセスする)に対してhObject、つまり最初の入力引数を使用しますが、setコールのすべてでhandles.myPopupHを使用すると、両方のポップアップが常に同じ状態になるようにすることができます。したがって、uiオブジェクトは重複する可能性がありますが、すべてのコード(より重要なもの)は単一のコピーにしか存在しません。

複数のUI要素に対して1つのコールバックを日常的に使用する1つの場所は、図を閉じる「X」と同様に、「キャンセル」ボタンからアクセスされるクローズ要求関数です。 「ファイル」メニューの項目。

関連する問題