Я делаю подборщик цветов на основе Qt 5.4.1. Он работает следующим образом: когда пользователь нажал один QToolButton, он показывает QColorDialog. Я использую сигнал «выпущенный()» QToolButton. Теперь проблема заключается в том, что когда я закрываю QColorDialog, сигнал release() запускается снова. Но когда я меняю его на QPushButton, проблема исчезла.QToolButton выпустил() сигнал, запущенный дважды
У моей панели инструментов нет меню. Интересно, спроектирован ли QToolButton как этот номер, или это просто ошибка? Потому что по другой причине я не могу использовать QPushButton. Итак, есть ли какой-то рабочий стол, чтобы сделать работу с инструментами?
Update:
Я попытался поместить только код ниже в выпущенном слот:
static int n = 0;
qDebug() << Q_FUNC_INFO << ++n;
return;
счетчик увеличивается 2 каждый клик. Поэтому он не должен иметь ничего с QColorDialog.
Я не мог воспроизвести это поведение. Не могли бы вы отредактировать вопрос и добавить пример кода? Какой сигнал кнопки вы используете, чтобы открыть диалоговое окно цвета? –
@ RafaelMonteiro: Я использую статическую функцию QColorDialog :: getColor() в слоте выпущенного() сигнала, может это вызвать проблему? – diverger
Я пробовал это, и он работал (с QToolButton и QPushButton). Выпущенный() сигнал вызывался только один раз, отображая диалог цвета. Вы пытались использовать сигнал clicked() вместо сигнала release()? –