2009-07-21 17 views
4

私はQDockWidgetの中に1つの四角形のウィジェットを持っています。 `` QDockWidgetをサイズ変更できるようにしたいが、常に四角形を維持するのに対し、デフォルトでは不均衡に伸ばすことができる。Qt:ウィンドウの四角形のサイズ変更

これを行うには、サイズポリシー、サイズヒントなどのどのような組み合わせを設定する必要がありますか?

答えて

2

resizeEvent()が呼び出された場合、はすでにのウィジェットが呼び出されています。したがって、resize()を呼び出すと、ちらつきが発生する可能性があります。

QWidget::heightForWidth(int)を再実装できます。 QDockWindowがドッキングされていれば動作し、Qtのレイアウトマネージャはそれを制御できます。しかし、IIRCは少なくともX11では、heightForWidth()はトップレベルのウィジェット(ウィンドウ)では動作しません。

1

resizeEventをオーバーライドする必要があります。

あなたは彼らが等しくない場合、あなたは幅または高さに関連したい同数にそれらを設定し、この方法では

を幅と高さを比較することがあります。

+1

私はこれより簡単な方法を望んでいました。私がこれを行う場合、私はユーザーの意図を把握しなければならないでしょう(ユーザーが幅や高さ、またはその両方を拡大または縮小しようとしているのでしょうか?)そうでなければ、ユーザーが何をしようとしているかを上書きします。 – erjiang

+0

多分あなたはサイズ変更時に大きなものを選ぶことができますが、これは縮小に問題を引き起こすかもしれません。 (そして成長時に小さな値を選ぶ際のバイス・バーカ)。どのようにしてメカニズムを実装すればよいのでしょうか。 マウスでストレッチするとき、ウィジェットの他の角までの距離になります。 あなたはアプリケーションが正常に何をしているかを見て、それらからインスピレーションを得るべきです... – ufukgun

関連する問題