Abarnert's answer made me think again about my dialog designs. First I tried it again with non-modal dialogs, but this was not consistent.
Finally I made a sequence of modal dialogs which works really great! I first start the first dialog, when its accepted it continues, however when its rejected another dialog comes up which only can get accepted. After you accept the second dialog the first dialog is executed again.
By using a while loop you can easily manage this:
self.notification = firstDialog(self) #custom dialog class
self.notification2 = secondDialog(self) #second custom dialog class
while True:
self.notification.show()
if self.notification.exec_() == QtGui.QDialog.Accepted:
break
else: #in case of rejection (the only other option in this dialog)
self.notification2.show()
if self.notification2.exec_() == QtGui.QDialog.Accepted:
continue
self.startFunction() #start what should happen after people accept the dialog