如何创建独立的非模态对话框

如何创建独立的非模态对话框

我试图扩展这个解决方案,非模态对话

代码语言:javascript运行复制from PyQt5 import QtWidgets

dialog = None

class Dialog(QtWidgets.QDialog):

def __init__(self, *args, **kwargs):

super(Dialog, self).__init__(*args, **kwargs)

self.setWindowTitle('A floating dialog')

self.resize(250,250)

class Window(QtWidgets.QWidget):

def __init__(self):

QtWidgets.QWidget.__init__(self)

button = QtWidgets.QPushButton('Open Dialog', self)

button.clicked.connect(self.handleOpenDialog)

self.resize(300, 200)

self._dialog = None

global dialog

dialog = Dialog(self)

dialog.show()

def handleOpenDialog(self):

if self._dialog is None:

self._dialog = QtWidgets.QDialog(self)

self._dialog.resize(200, 100)

self._dialog.exec_()

if __name__ == '__main__':

import sys

app = QtWidgets.QApplication(sys.argv)

win = Window()

win.show()

sys.exit(app.exec_())如果头衔不相关就道歉。我希望有一个独立于所有现有窗口/对话框的对话框/窗口,并且可以始终与之交互,即应用程序窗口的GUI循环/任何对话框都不会阻止这个非模型对话框。为了简单起见,我在上面的代码片段中使用了全局变量dialog,它将容纳非模态对话框实例。

当运行上述程序时,主窗口将出现--带有非模式对话框,两个对话框都是用户交互的,但当单击按钮时,self._dialog的GUI循环启动,用户不能再与浮动对话框和应用程序窗口交互。我想要的是能够与dialog进行交互,而不是与Window交互。

我希望行为类似于下面的示例:

我从主窗口打开帮助对话框,然后在主窗口顶部打开一个非模态对话框,它不能与主窗口交互,但仍然不能阻止帮助对话框/窗口,并且允许用户与该非模式窗口(即示例中的帮助对话框)进行交互。

相关推荐

STM32 ADC没有输入电压时,采集结果不为0
365bet365官网

STM32 ADC没有输入电压时,采集结果不为0

📅 06-27 👁️ 3034
施乐打印机如何扫描到电脑
365bet网上足球比赛

施乐打印机如何扫描到电脑

📅 06-27 👁️ 8833
施乐打印机如何扫描到电脑
365bet网上足球比赛

施乐打印机如何扫描到电脑

📅 06-27 👁️ 8833