123456789101112131415161718192021222324252627282930 |
- from qtpy import QtWidgets
- class ColorDialog(QtWidgets.QColorDialog):
- def __init__(self, parent=None):
- super(ColorDialog, self).__init__(parent)
- self.setOption(QtWidgets.QColorDialog.ShowAlphaChannel)
- # The Mac native dialog does not support our restore button.
- self.setOption(QtWidgets.QColorDialog.DontUseNativeDialog)
- # Add a restore defaults button.
- # The default is set at invocation time, so that it
- # works across dialogs for different elements.
- self.default = None
- self.bb = self.layout().itemAt(1).widget()
- self.bb.addButton(QtWidgets.QDialogButtonBox.RestoreDefaults)
- self.bb.clicked.connect(self.checkRestore)
- def getColor(self, value=None, title=None, default=None):
- self.default = default
- if title:
- self.setWindowTitle(title)
- if value:
- self.setCurrentColor(value)
- return self.currentColor() if self.exec_() else None
- def checkRestore(self, button):
- if self.bb.buttonRole(button) & \
- QtWidgets.QDialogButtonBox.ResetRole and self.default:
- self.setCurrentColor(self.default)
|