def requestColor(prompt, initColor=None, **kwargs): dialog = QtGui.QColorDialog(initColor or QtCore.Qt.white) dialog.move(QtGui.QCursor.pos()) dialog.setWindowTitle(prompt) onColorChanged = kwargs.get('onColorChanged', None) if onColorChanged: dialog.currentColorChanged.connect(onColorChanged) if dialog.exec_() == 1: col = dialog.currentColor() # dialog.destroy() if col.isValid(): return col return initColor