Don't use the dialog, create your own "dialog" instead. I have tried something similar to what you are trying and I found this the easiest.
class CConfigWindow(QtGui.QMainWindow):
def __init__(self):
super(CConfigWindow, self).__init__()
self.setGeometry(200, 200, 800, 600)
self.setWindowTitle("config")
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
paneW = QtGui.QWidget()
grid = QtGui.QGridLayout()
paneW.setLayout(grid)
tab = QtGui.QTabWidget(self)
grid.addWidget(tab,0,0,1,5)
hest2 = QtGui.QPushButton("Ok")
hest2.clicked.connect(self.ok)
grid.addWidget(hest2,1,0)
hest2 = QtGui.QPushButton("Cancel")
hest2.clicked.connect(self.cancel)
grid.addWidget(hest2,1,1)
hest2 = QtGui.QPushButton("Factory Defaults")
hest2.clicked.connect(self.Reset)
grid.addWidget(hest2,1,2)
self.setCentralWidget(paneW)
self.show()
self.activateWindow()
self.raise_()
def Reset(self):
pass
def ok(self):
self.close()
def cancel(self):
self.close()
def closeEvent(self, event):
event.accept()
self.crap = CConfigWindow()