2017-02-16 36 views
0

閉QDialog的(如果存在的話)我在設計人員創建的UI,使用pyside-UIC,然後按照一個教程我這樣做它轉換爲蟒:在pySide

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個dialgos。我記得有一種方法可以檢查對話框是否已經存在,如果存在,刪除它。我發現谷歌的一些信息,但是我要麼不知道如何起訴這些信息或者他們不適合我的情況......

您的幫助非常感謝, 丹尼爾

回答

0

請嘗試下面的代碼。

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

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

上面的代碼只是發現窗口是否存在,如果它存在它將關閉並像往常一樣創建窗口。