2011-06-23 10 views
5

GUIでuicontrolsに必要な実際のサイズを計算しようとしているため、GUIのサイズを適切に変更することができます。私の問題は、uicontrolのExtentプロパティはテキストエリアだけであり、周囲のコントロールのサイズ(ポップアップの下矢印やエディットコントロールの余白など)を判断する方法が見つからないということです。コントロールの装飾のサイズを取得する方法はありますか?MATLAB uicontrolに必要な実際のサイズを計算する

私はthis related questionをMATLAB Answersで見ましたが、それは解決しなかったようです。

編集:例えば

、私は、このポップアップが内容を切断避けるためにどうあるべきか、大きな計算したい:

uicontrol('style', 'popup', 'string', {'a long string'}) 

エクステントのみどのように大きな「長い文字列を」私に指示私はまだポップアップをどのくらい大きくするか分かりません。私は、ユーザーのディスプレイ上にどれだけの余分なスペースが必要かを判断する方法を望んでいます。

答えて

0

uicontrol Positionプロパティは、コントロールの境界矩形の高さと幅を提供します。これはいつも私のために働いてきました。このプロパティが十分な情報を提供しないコントロールがありますか?

+0

位置は、コントロールの現在のサイズのみを示します。コントロールが必要とするサイズについては何も教えてくれません。問題の例を追加するために質問を編集しました。 –

0

構築しているGUIをJavaコンポーネントのみから組み立てることができる場合は、MATLABのJava統合を使用して、Java Swingコンポーネント(すべてMコードから)を使用してウィンドウを作成して駆動できます。これは、JavaレイアウトマネージャがUIレイアウトを適切に行うことができるため、問題を完全に回避します。

1

uicontrolに含まれる文字列がどのくらいのスペースを占めるかを調べるには、get(hObject、 'extent')を使用します。これがuicontrolの位置よりも大きいかどうかを確認することができます。

+1

私が質問したところでは、エクステント・プロパティーは文字列が占めるスペースのみを示しています。文字列を囲むコントロールには余分なスペースが必要です。 positionがエクステントに等しい場合、コントロールは既に小さすぎます。 –

関連する問題