python - PyQt - 不希望无模式对话框总是在最前面

标签 python dialog pyqt modeless

我有一个创建无模式对话框的主窗口。这很好用,但对话框总是在主窗口的前面。即使我回到主窗口并使用它来聚焦,对话框也始终保持在顶部。我无法在对话框顶部滑动主窗口。

我将主窗口的自身作为父窗口传递给对话框。

#In my main window
self.beacon_dlg = dialog_beacon.BeaconDialog(self)

#In the dialog class
class BeaconDialog(QDialog, ui_dialog_beacon.Ui_Dlg_beacon_soh):
    def __init__(self, parent):
        super(BeaconDialog, self).__init__(parent)
        self.setupUi(self)

知道如何让主窗口位于对话框前面,并且在主窗口关闭时仍然关闭对话框(父控件)吗?

(我在 Windows 上使用 PyQt 4.10 和 Python 2.7)

谢谢。

最佳答案

我最终使用了以下方法,它似乎有效,但不确定它是否是最佳方法。而不是使用:

def __init__(self, parent):
    super(BeaconDialog, self).__init__(parent)

我用过:

def __init__(self, parent):
    super(BeaconDialog, self).__init__()

因此不会使对话框成为主窗口的子窗口。 (出于其他原因,我仍然将主窗口作为参数传递给类)

然而,为了正确关闭对话框,我不得不重载主窗口的 closeEvent() 并自己关闭对话框:

def closeEvnet(self):
    if (self.beacon_dlg) : self.beacon_dlg.reject()

关于python - PyQt - 不希望无模式对话框总是在最前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19917155/

相关文章:

javascript - 对话框应如何向屏幕阅读器用户宣布动态内容?

python - PyQt4.QtCore.QVariant 对象而不是字符串?

c++ - 在 pythonQt 中使用 numpy 模块

python - Python中的环中值过滤器

Python - 以整齐的表格格式将 HTML 抓取为 csv

android - 未显示主要 Activity 的 onCreate 中的进度对话框

python - 如何使用全局参数跳过 python unittest

python - 计算数据框中纬度和经度之间的距离

Python Celery 试图在 docker-compose 中占用一个端口号并产生问题

.net - 显示只有 "Close"或 "Cancel"按钮的错误对话框 (MessageBox)?