void ColorButton::click() { QColorDialog * dialog = new QColorDialog(this); dialog->setWindowFlags(Qt::Window | Qt::WindowStaysOnTopHint | Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint); QColor savedColor = getColor(); connect(dialog, SIGNAL(currentColorChanged(QColor)), this, SLOT(currentColorChanged(QColor))); dialog->setCurrentColor(getColor()); if (dialog->exec() != QDialog::Accepted) setColor(savedColor); delete dialog; }