2017-02-16 28 views
0

Я создал пользовательский интерфейс в конструкторе, превратили его в питон используя PySide-UIC, а затем после урока я это сделал:закрытия QDialog (если существует) в 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() 

Пользовательский интерфейс будет использоваться в Maya, и кажется, но если я открою его 3 раза, у меня будет 3 набора. Я помню, что есть способ проверить, существует ли диалог, и если он это делает, удалив его. Я нашел некоторую информацию о Google, но я либо не понял, как подать в суд на те данные, или они не подходят к моему делу ...

Большое спасибо за вашу помощь, Daniele

ответ

0

Пожалуйста, попробуйте следующий код ,

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

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

Приведенный выше код просто выясняет, существуют ли окна, и если он существует, он будет закрываться и создает окно, как обычно.

 Смежные вопросы

  • Нет связанных вопросов^_^