退出主窗口时关闭子窗口

Posted

技术标签:

【中文标题】退出主窗口时关闭子窗口【英文标题】:Closing child window when exiting main 【发布时间】:2020-02-23 14:25:00 【问题描述】:

我确定,这是一个非常基本的事情,但我就是不明白为什么关闭主窗口不会关闭子窗口

from PyQt5 import uic
import sys

app = QApplication(sys.argv) #Main Window

Main = uic.loadUi("main.ui")
Child = uic.loadUi("child.ui")

def child():
    Child.show()

Main.button.pressed.connect(child)
Main.show()
app.exec_()

【问题讨论】:

【参考方案1】:

void QWidget::setParent(QWidget *parent)

将小部件的父级设置为父级,并重置窗口标志。


QWidget::setWindowFlags(Qt::WindowFlags 类型)

import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import Qt


app = QApplication(sys.argv)      #Main Window

Main = uic.loadUi("main.ui")

Child = uic.loadUi("child.ui")

Child.setParent(Main)             # +++
Child.setWindowFlags(Qt.Window)   # +++


def child():
    Child.show()

Main.button.pressed.connect(child)

Main.show()
app.exec_()

【讨论】:

谢谢尼克!就是这个! @jtamasi 如果我的回答对您有所帮助,请不要忘记标记为正确,如果您不知道该怎么做,请查看***.com/tour

以上是关于退出主窗口时关闭子窗口的主要内容,如果未能解决你的问题,请参考以下文章

Qt Window Focusing:关闭二级子窗口时主窗口不聚焦

2016-11-6坚持学习Day21子窗口关闭时,同步关闭它的主窗口(方法二)

monomac - 单击主窗口中的按钮时如何关闭子窗口

2016-11-6坚持学习Day21子窗口关闭时,同步关闭它的主窗口

2-Qt关闭子窗口时执行特定代码

2016-11-6坚持学习Day21主窗口关闭时,同步关闭它的子窗口