Pyside - QcolorDialog сигналы

Какой будет сигнал для нажатия кнопки "ОК" в QColorDialog.

Я старался

self.color_chooser = QtWidgets.QColorDialog()
self.color_chooser.getColor()
self.color_chooser.currentColorChanged.connect(self.color_pick)

def color_pick(self):
    print 'signaled'

это не сработало.

1 ответ

Решение

Сигнал, который вы запрашиваете, colorSelected, выдается после нажатия кнопки ОК

class Widget(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.color_chooser = QColorDialog()
        self.color_chooser.colorSelected.connect(self.color_pick)
        self.color_chooser.show()

    def color_pick(self, color):
        print('signaled', color)

Если вы хотите получить цвет после нажатия кнопки ОК, вы можете использовать эти другие методы:

class Widget(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.color_chooser = QColorDialog()
        if self.color_chooser.exec_() == QColorDialog.Accepted:
            print(self.color_chooser.currentColor())

class Widget(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.color_chooser = QColorDialog()
        color = self.color_chooser.getColor()
        if color.isValid():
            print(color, color.name())
Другие вопросы по тегам