2012-04-19 6 views
2

QWidgetが親なしで作成された場合は、ウィンドウが作成されます。qtウィンドウはいつ作成されますか?

したがって、正確にウィンドウが作成されるのはいつですか? show()と呼んでいますか?またはオブジェクトが構築されたとき?

答えて

1

show()メソッドが呼び出されたときにウィンドウが作成されます。ウィジェットを表示する前にウィジェットの親を設定すると、ウィンドウは作成されません。

+0

それは私の理解でもありましたが、それを説明するリンクがありますか? showを呼び出す前にウィンドウのIDにアクセスすると正常に動作します。 –

+0

QWidget :: winIdのドキュメントでは、「ウィジェットが非ネイティブ(エイリアン)で、winId()が呼び出された場合、そのウィジェットにはネイティブハンドルが提供されます。 winId()を呼び出すと、目に見えないウィジェットのウィンドウIDが作成されると思います。 –

+0

しかし、最初にウィンドウを作成することなく、ウィンドウのIDを取得することはできません。ウィンドウがコンストラクタで(XCreateWindowを使用して)作成され、XMapWindowを使用してshow()が呼び出されたときにウィンドウが表示されることがあります。 –

関連する問題