2012-12-04 22 views
0

嗨我學習QT和我遇到了我不明白的東西。它爲什麼當我創建像這樣無法顯示小部件,當作爲父母傳遞時啓動

widget = new Widget(this); 

widget->show();一個小部件不顯示小部件,但如果我離開「這個」出來即

widget = new widget(); 

它不顯示?還有什麼我需要能夠從孩子調用父母的方法之一,除非我創建時通過this設置孩子的患者,我無法做到這一點。

+0

誰是'this':或者,如果你不想(或不能)做到這一點做,那麼你應該在創建widget時設置Qt::Window窗口標誌? :) –

+0

這是一個窗口,即QMainWindow – geminiCoder

回答

0

小部件顯示出來。但它顯示爲主窗口的一部分,不在其窗口中。當然,如果你正在創建的小部件沒有任何內容,那麼你不會看到太多內容。你可以像測試:

widget = new QTextEdit(this); 
widget->show(); 

如果你想使小部件總是在自己的窗口顯示出來,那麼你應該有你的widget從QDialog的,而不是從QWidget的繼承。

widget = new Widget(this, Qt::Window); 
相關問題