Вместо того, чтобы просто использовать статический метод, вы можете использовать объект класса, в этом случае я создал класс, который уже реализует функциональность изменения цвета:
from PyQt4 import QtCore, QtGui
class ColorDialog(QtGui.QColorDialog):
def __init__(self, initial=QtGui.QColor(), parent=None):
super(ColorDialog, self).__init__(parent)
self.setOption(QtGui.QColorDialog.DontUseNativeDialog)
self.currentColorChanged.connect(self.onCurrentColorChanged)
self.onCurrentColorChanged(self.currentColor())
@QtCore.pyqtSlot(QtGui.QColor)
def onCurrentColorChanged(self, color):
self.setStyleSheet("QColorDialog { background-color: %s}" % color.name())
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
w = ColorDialog()
if w.exec_() == QtGui.QDialog.Accepted:
print(w.currentColor())