implayを使用して必要なフレームを再生していますが、ポップアップするウィンドウのサイズが少し小さいため、ユーザーは自分で最大化する必要があります。ポップアップするウィンドウのサイズを制御する方法はありますか?
4 に答える
ああ、ここに行きます:
implay(Diff);
set(findall(0,'tag','spcui_scope_framework'),'position',[150 150 700 550]);
2012bで動作します。(注: 複数の implay ウィンドウを開いている場合は、すべて同じサイズに設定されます)
この種のものを自分で見つける方法を学ぶことができるように、私が行ったことは、他の開いているウィンドウのないワークスペースから始めました。
その後implay(Diff)
、implay ウィンドウを開いていました。
次にfindall(0)
、ルート ワークスペースである 0 の下にあるすべての figure/uicontrol ハンドルを見つけました。しかし、多すぎました!それらのほとんどは、implay
ウィンドウのサブコンポーネント (メニュー、ボタンなど) です。したがって、ルート ワークスペースによって作成された最初のコンポーネントのみが必要でした。
これを取得するために、私は使用しましたfindall(0,'Parent',0);
- 代わりに を使用することもできallchild(0);
ました。
これに変数を割り当てました:ImplayHandle=findall(0,'Parent',0);
そして、そのプロパティを見ました:
get(ImplayHandle);
これらをTag
調べたところ、 はウィンドウの識別子のようでした'spcui_scope_framework'
。Position
また、このプロパティが Figure ウィンドウと同様のサイズであることに気付きました。これは有望でした。
そこで、確認するために試しfindall(0,'Tag','spcui_scope_framework');
てみたところ、返されたハンドルが 1 つだけであることがわかりました (サブコンポーネントまたはメニュー項目のいずれも、同じタグでラベル付けされていなかった可能性があります)。
最後に、開いているウィンドウを閉じてから、もう一度使用して新しいウィンドウを開きましたimplay(Diff);
。コマンドを使用してset
、ウィンドウ サイズを変更しようとしました。
set(findall(0,'tag','spcui_scope_framework'),'position',[150 150 700 550]);
期待どおり、ウィンドウのサイズが実際に変更されていることがわかりました。
handle = implay(movie);
handle.Parent.Position = [100 100 700 550];
ウィンドウサイズを設定したい場合にも機能します。
プロパティを使用して Figure のサイズを制御でき'Position'
ます。
このプロパティは、形式 の 4 要素ベクトルを想定している[fromX fromY width height]
ため、 を変更することで Figure のサイズを制御できますwidth
。height
例えば
figure( 'Position', [150 150 700 550] )
幅 700 ピクセル、高さ 550 ピクセルの新しい Figure を開きます。