Python 正在pySide中关闭qDialog(如果存在)

Python 正在pySide中关闭qDialog(如果存在),python,pyside,maya,qdialog,Python,Pyside,Maya,Qdialog,我在designer中创建了一个UI,使用pyside uic将其转换为python,然后根据教程进行了以下操作: from PySide import QtCore, QtGui import mirroratorUI as customUI #import mirroratorCore as mirroratorCore from shiboken import wrapInstance import maya.OpenMayaUI as omui reload(customUI) def

我在designer中创建了一个UI,使用pyside uic将其转换为python,然后根据教程进行了以下操作:

from PySide import QtCore, QtGui
import mirroratorUI as customUI
#import mirroratorCore as mirroratorCore
from shiboken import wrapInstance
import maya.OpenMayaUI as omui
reload(customUI)

def maya_main_window():
    main_window_ptr = omui.MQtUtil.mainWindow()
    return wrapInstance(long(main_window_ptr), QtGui.QWidget)

class ControlMainWindow(QtGui.QDialog):

    def __init__(self, parent=None):

        super(ControlMainWindow, self).__init__(parent)
        self.setWindowFlags(QtCore.Qt.Tool)
        self.ui =  customUI.Ui_MainWindow()
        self.ui.setupUi(self)

myWin = ControlMainWindow(parent=maya_main_window())
myWin.show()
UI将用于Maya,并且会出现,但是如果我打开它3次,我将有3个拨号键。我记得有一种方法可以检查对话框是否已经存在,如果已经存在,则删除它。我在谷歌上找到了一些信息,但我要么不知道如何起诉这些信息,要么这些信息不适合我的情况

非常感谢你的帮助,
Daniele

请尝试以下代码

global myWin
try:
    myWin.close()
except:
    pass

myWin = ControlMainWindow(parent=maya_main_window())
myWin.show()

上面的代码只是找出窗口是否存在,如果它存在,它将关闭并像往常一样创建窗口

请尝试下面的代码

global myWin
try:
    myWin.close()
except:
    pass

myWin = ControlMainWindow(parent=maya_main_window())
myWin.show()
上面的代码只是找出窗口是否存在,如果它存在,它将关闭并像往常一样创建窗口