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())