2009-12-04 70 views
3

在PyQt 4.5中,我有另一種佈局內的佈局。我想從其父項中刪除子佈局,並隱藏它。我可以說parent_layout.removeItem(child_layout)從其父級移除佈局,但它仍顯示在小部件上。我無法找到任何方法來一步隱藏它,因爲QLayout沒有像QWidget這樣的hide()方法。在qt中刪除一個子佈局?

回答

4

簡單的解決方案是擁有一個內部小部件,而不是內部佈局。您可以將想要的佈局分配給小部件,然後在您想要的時候移除/隱藏小部件。一個好的經驗法則是,如果你只想安排小部件的顯示方式,那麼就使用佈局;如果你想隱藏/顯示他們作爲一個組,使用一個小部件。

1

與flupke一些幫助上#qt,我想出了:

for i in range(0, child_layout.count()): 
    child_layout.itemAt(i).widget().hide() 
parent_layout.removeItem(child_layout) 

即假設所有的子佈局的孩子是小部件。有一個更簡單的解決方案嗎?