Question

Dans PyQt 4.5, j'ai une mise en page dans une autre disposition. Je voudrais supprimer le sublayout de son parent, et le cacher. Je peux dire parent_layout.removeItem(child_layout) pour enlever la mise en page de son parent, mais il montre encore sur le widget. Je ne peux pas trouver un moyen de le cacher en une seule étape, comme QLayout ne dispose pas d'une méthode hide() comme QWidget fait.

Était-ce utile?

La solution

La solution facile serait d'avoir un widget de l'intérieur, pas un aménagement intérieur. Vous pouvez affecter la mise en page que vous désirez le widget, puis juste supprimer / cacher le widget quand vous voulez le faire. Une bonne règle de base est que si vous voulez juste pour organiser la widgets apparaissent, puis utiliser une mise en page; si vous voulez masquer / afficher en tant que groupe, utilisez un widget.

Autres conseils

Avec l'aide de flupke sur #qt, je suis venu avec:

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

Ce qui suppose que tous les enfants de la disposition des enfants sont des widgets. Y at-il une solution plus simple?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top