2012-04-19 91 views
2

如果QWidget没有父项创建,它会创建一个窗口。何时创建qt窗口?

那么,到底当在窗口中创建?是什么时候调用show()?或者当对象被构建时?当show()方法被调用时创建

回答

1

窗口。如果在显示小部件之前设置小部件的父级,则不会创建窗口。

+0

这是我的理解为好,但你有一个解释,一个链接?在调用show之前访问窗口的ID工作正常。 – 2012-04-19 13:06:30

+0

作为QWidget的:: winId文档中说,“如果某个微件非本地(外来)和winId()被调用就可以了,该小工具将提供一个原生手柄”。我认为当您调用winId()时,创建隐藏窗口小部件的窗口ID。 – 2012-04-19 16:16:40

+0

但是不可能先获取窗口的ID,而无需创建窗口。可能会发生这样的情况:在构造函数中使用XCreateWindow创建一个窗口,然后在使用XMapWindow调用show()时显示该窗口。 – 2012-04-19 16:21:19