如何隐藏python中QGridLayout()中的所有小部件

时间:2015-03-13 15:54:15

标签: python python-3.x

我目前正在寻找一种智能的方法,通过使用PyQt库开始在PyCharm中制作的游戏,我想尝试隐藏几个小部件,或者完成布局,但函数.hide()不能完成布局。

是否存在完全隐藏布局的代码,或者是否隐藏了该框中的所有窗口小部件?

如果答案是后者,我怎样才能让我更容易,而不是浏览每个小部件并向其添加.hide()扩展名。我可以在某种父级中收集所有这些小部件,然后只收集parent.hide()以及parent.show()吗?

代码看起来像这个atm:

    playerbox = QGridLayout()
    playerbox.addWidget(self.player1, 0, 0)
    playerbox.addWidget(self.player2, 0, 1)
    playerbox.addWidget(self.stake, 1, 0)
    playerbox.addWidget(self.money, 1, 1)
    playerbox.addWidget(betButton, 2, 0)
    playerbox.addWidget(foldButton, 2, 1)
    playerbox.addWidget(bettingtext,3,0)

并且播放器框应该是游戏中显示多个项目的框。我只是希望这个盒子在游戏开始之前不显示任何内容(这是在用户按下开始时完成的,但这已经处理过了。)

提前致谢!

1 个答案:

答案 0 :(得分:0)

我喜欢这个:

[playerbox.itemAt(i).widget().hide() for i in 
    range(playerbox.rowCount()*playerbox.columnCount()) if 
    playerbox.itemAt(i)]

if子句是必需的,因为您的网格中可能有空白点,然后itemAt()会返回None

相关问题