2011-08-03 16 views
1

私は* .ui定義を持っています。ロードして実行しています。特定のサブウィジェットには、(x = 0、y = 88、w = 400、h = 200)の矩形があります。 * .uiに基づいてQWidgetクラスをインスタンス化してshow()すると、すべて正常です。Qt:サブQWidgetの初期サイズのチキン/卵の問題

私はウィジェットを表示する前にこの矩形を取得する必要があります。

クラスをインスタンス化すると、ジオメトリオブジェクトは常に(0,0,100,30)を返します。ウィジェットを表示()した後で、正しいジオメトリを取得します。私はこのサブウィジェットにsizeHintを使うことができるかもしれませんが、 "ヒント-X"や "ヒント-Y"はどうですか?ウィジェットを表示する前に私の(x = 0、y = 88、w = 400、h = 200)にどうやって行くのですか?これは私のアプリケーションの1つにとって重要です(これは第三者のコンポーネント要件であり、変更することはできません)。

答えて

1

あなたが知る必要があることを教えてくれるが、あなたの状況によっては、それを傍受するさまざまな方法があります。

自分のQWidgetサブクラスを扱っている場合は、resizeEvent()を上書きできます。そうでない場合は、event filterをオブジェクトにインストールできます。

これらのバリエーションには他にも2つのオプションがあります。ドキュメントの重要な部分はThe Event SystemQCoreApplication::notify

です