それぞれ独自の uicontrols パネルを備えた、さまざまな機能の側面を持つ MATLAB GUI があります。1 つのパネルが選択されると、もう 1 つのパネルは非表示に設定され、その逆も同様です。ただし、ポップアップ メニューの形式で同じ入力の一部を共有します。どうにかして、2 番目のパネルにメニューの「クローン」インスタンスを含めることはできますか? できるだけ多くの冗長なコールバックと uicontrol を避けたいと思います。
1 に答える
2
uicontrol が Figure の直接の子である場合、すべての前に置くことができるかもしれません。
より簡単な解決策は、複数の Uicontrol に対して同じコールバックを使用することです。プロパティ エディタで、コールバック名を変更し、共通のコールバック関数に設定できます。さらに、同じように動作するポップアップのハンドルを格納する GUIのフィールド (例: myPopupH
) を作成できます。OpeningFcn
次に、コールバックで、すべての呼び出し (ポップアップ メニューの変更された状態にアクセスするhObject
ため) に対して、つまり最初の入力引数を使用しますが、すべての呼び出しで使用するので、両方のポップアップの状態は常に同じです。したがって、ui-object は冗長かもしれませんが、すべてのコード (これははるかに重要です) は単一のコピーにしか存在しません。get
handles.myPopupH
set
複数の UI 要素に対して 1 つのコールバックを日常的に使用する場所の 1 つは、「キャンセル」ボタンから、また Figure を閉じる「X」から、場合によっては「ファイル」の 1 つからアクセスされるクローズ リクエスト関数です。 - メニュー項目。
于 2012-03-13T23:07:49.220 に答える