Осмелюсь спросить - а запускать то его как?
update:
Красотааа, а инклуды наверняка не нужны
update:
Проблему увидел, пока думаю. Там у тебя кнопка при потере фокуса с меню твоего испускает toggled. Пытаюсь найти что да как.
update:
Проблема банальна.
bool checked = pButton->isChecked(); // всегда равняется true
Выглядит лог примерно так
toggled true - сигнал изменения состояния кнопки
button true - твоя проверка, приведённая выше
click - сигнал о нажатии кнопки (приходит позже, ибо подключён после твоего слота)
// - вот тут появляется твоё меню, далее я теряю фокус с меню (тыкаю на заголовок окна)
toggled false - сигнал изменения состоянии кнопки (pButton->setChecked(false)
Вот и всё. Неправильный алгоритм просто.
update: Ещё упрощу:
Теперь нажатие на кнопку,
вызывает меню, а повторное нажатие,
прячет и снова его показываетЕсли убрать строку
pButtonShowHideDropDownMenu->setChecked(false);
, то такого безобразия нет
Анализируем твой вопрос.
Алгоритм:Первое нажатие:
clicked pushButton: Нажатие на кнопку
Проверка условий (всегда true, как я уже писал)
Вызов меню
Повторное нажатие
clicked pushButton: Переводим фокус с меню на кнопку (при повторном нажатии)
Меню исчезает
Проходит сигнал нажатия кнопки
Проверка условий (всегда true, как я уже писал)
Появление меню
PS и да, в следующий раз лучше уж проект выложи. Со всеми main/include.