pyqt5 addSubWindow删除子窗口
时间: 2024-10-25 11:05:24 浏览: 49
PyQt5中的`addSubWindow`是用来创建并添加子窗口到主窗口的功能,通常用于创建可独立操作的弹出窗口。当你想删除子窗口时,可以使用`close()`或`hide()`方法关闭或隐藏它,如果需要从内存中完全移除窗口,可以使用`deleteLater()`方法。这里是一个简单的示例:
```python
from PyQt5.QtWidgets import QMainWindow, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
# 创建一个子窗口
sub_window = QWidget()
sub_window.setWindowTitle('子窗口')
self.addSubWindow(sub_window)
# 删除子窗口(仅隐藏)
# sub_window.hide()
# 或者关闭子窗口
# sub_window.close()
# 如果你想在稍后删除,可以这样做
# QTimer.singleShot(0, lambda: sub_window.deleteLater()) # 使用定时器延迟删除,避免在事件循环中引发异常
```
请注意,直接调用`sub_window.delete()`可能会导致引用计数错误,因为窗口通常是主窗口的一部分直到其生命周期结束。因此推荐使用`deleteLater()`配合定时器。
阅读全文