how to make a dialog or a popup window 可以留在 mainwindow 后面而不覆盖 mainwindow

how to make a dialog or a popup window can stay behind the mainwindow and don't cover the mainwindow

我是 pyqt5 的新手,我想要弹出一个 window 并让 window 可以留在主 window 后面并且不可点击(就像让新的 window作为另一个进程window)

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class Demo(QMainWindow):
    def __init__(self):
        super().__init__()
        test_button = QPushButton('test')
        test_button.clicked.connect(self.onClick)
        self.setCentralWidget(test_button)

    def onClick(self):
        # dlg = QDialog(self)
        dlg = QMainWindow(self)
        dlg.setWindowFlag(Qt.WindowStaysOnTopHint, False)
        dlg.show()

app = QApplication([])
demo = Demo()
demo.show()
app.exec()

新的 window 总是留在主window,我需要 window 留在它后面。

void QWidget::move(int x, int y)

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *


class Demo(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Main Window')
        test_button = QPushButton('test')
        test_button.clicked.connect(self.onClick)
        self.setCentralWidget(test_button)

    def onClick(self):
        # dlg = QDialog(self)
        dlg = QMainWindow(self)
        dlg.setWindowTitle('Dialog Window')

        dlg.move(self.geometry().x() + self.geometry().width() + 30,         # <---
                 self.geometry().y() - 30)

        dlg.setWindowFlag(Qt.WindowStaysOnTopHint, False)
        dlg.show()

    def sizeHint123(self):
        return QSize(200, 200)

app = QApplication([])
demo = Demo()
demo.show()
app.exec()


更新

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *


class Demo(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Main Window')

        self.setWindowFlags(Qt.WindowStaysOnTopHint)                            # +++

        test_button = QPushButton('test')
        test_button.clicked.connect(self.onClick)
        self.setCentralWidget(test_button)

    def onClick(self):
        # dlg = QDialog(self)
        self.dlg = QMainWindow()                                                 # --- self
        self.dlg.setWindowTitle('Dialog Window')

        self.dlg.move(self.geometry().x() + self.geometry().width() + 30,         
                 self.geometry().y() - 30)

#        dlg.setWindowFlag(Qt.WindowStaysOnTopHint, False)
        self.dlg.show()

    def sizeHint123(self):
        return QSize(200, 200)

app = QApplication([])
demo = Demo()
demo.show()
app.exec()