擅长:python、mysql、java
<p>您的示例失败了,因为如果<code>QMainWindow</code>已有布局,则无法对其进行设置。
如果在终端可见的情况下运行示例代码,则单击按钮时会看到下面打印的错误。在</p>
<blockquote>
<p>QWidget::setLayout: Attempting to set QLayout "" on MainWindow "", which already has a layout</p>
</blockquote>
<p>理论上,您应该能够删除旧的布局,并添加一个新的布局,但这在PyQt中似乎很困难。(编辑:关于如何删除和重新添加布局,请参阅Scholli的回答)</p>
<p>我建议您看看您是否真的需要重新创建整个布局,还是只需要替换布局中的一个小部件。如果你决定后者,有很多关于删除/替换布局中的小部件的stackoverflow帖子。在</p>