from PySide2 import QtCore, QtGui, QtWidgets
from shiboken2 import wrapInstance
from maya import OpenMayaUI as omui
class CustomDialogExample(QtWidgets.QDialog):
def __init__(self, parent=None):
super(CustomDialogExample, self).__init__(parent)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Dialog)
vbox = QtWidgets.QVBoxLayout(self)
self.comboBox = QtWidgets.QComboBox()
self.comboBox.addItems(['AL', 'B', 'C'])
vbox.addWidget(self.comboBox)
vbox.addStretch()
buttonBox = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel, QtCore.Qt.Horizontal, self)
buttonBox.accepted.connect(self.accept)
buttonBox.rejected.connect(self.reject)
vbox.addWidget(buttonBox)
@staticmethod
def getSelection(parent=None):
dialog = CustomDialogExample(parent)
#dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
result = dialog.exec_()
return (result==QtWidgets.QDialog.Accepted, dialog.comboBox.currentText())
def closeEvent(self, event):
print 'closeEvent'
self.deleteLater()
def hideEvent(self, event):
print 'hideEvent'
self.deleteLater()
def showDialog():
mayaMainWindow = wrapInstance(long(omui.MQtUtil.mainWindow()), QtWidgets.QWidget)
accept, data = CustomDialogExample.getSelection(mayaMainWindow)
print(accept, data)