Как связать сигнал нажатия кнопки («сработавший» сигнал) с функцией действия / слота для пользовательской кнопки на панели инструментов с Qt Creator? - PullRequest
0 голосов
/ 17 марта 2011

Увидев ранее существующее обсуждение на форуме «stackoverflow» о разработке и управлении меню и действиями в приложении, которое разрабатывается и разрабатывается в Qt Creator (см. «Как связать щелчок меню с действием в Qt Creator?»: Каксвязать щелчок меню с действием в Qt Creator? ), Боюсь, у меня есть те же вопросы о кнопках действий на панели инструментов, которые я пытаюсь создать и заполнить с помощью Qt creator ...

Итак, поехали!

(1) Я создаю хотя бы одно действие в редакторе действий ... (2) Я перетаскиваю это действие на панель инструментов

(шагиС 1 и 2 все в порядке, никаких проблем с ними нет, хотя это довольно необычный способ сделать такие вещи для меня, потому что другие инструменты проектирования UIM обычно предлагают обратные шаги 2 и 1, чтобы сделать то же самое, что более «естественно» вМое мнение, но, я знаю, в нашем мире разработки и программирования программного обеспечения существует и существует много разных вещей ...)

=> (3) Как связать (соединить) функциюна (который я собираюсь реализовать), который должен вызываться при нажатии данной кнопки панели инструментов?

Я имею в виду, как подключить «сработавший» сигнал для данного действия (кнопка панели инструментов) в нужный слот (функцию) для реализации позже ...?Можно ли делать такие вещи с помощью «Редактора сигналов и слотов» внутри Qt Creator, или мне нужно самому вызывать «connect ()» где-нибудь в коде, чтобы добиться этого?Заранее большое спасибо за любую помощь / предложение / подробный пример для идеального новичка на этом этапе ...

На самом деле, я хотел бы знать, можно ли не вызывать connect () самостоятельно для такой необходимости иЕсли Qt Creator создаст прототип слота (функции) сам по себе, или мы должны сами создать такие прототипы слота (функции), прежде чем Qt Creator сможет принять во внимание новый прототип слота (функции) и реально помочь / помочь пользователю / разработчику в этомобычный / нормальный этап проектирования UIM / возможности проектирования ...?

С наилучшими пожеланиями.

Alain-Pierre

1 Ответ

0 голосов
/ 30 июля 2011

Если QAction является членом вашего окна, тогда обычный

QMetaObject::connectSlotsByName(SettingsDialog);

... соединит сигнал действия trigger с соответствующим именем метода слотов. Обычно это вызывается автоматически классами GUI, созданными с помощью конструктора. Так, например, если действие называется actionSomething, создайте слот в вашем классе графического интерфейса с такой подписью:

void on_actionSomething_triggered();

... будет означать, что вам не нужно вручную connect сигналы и слоты.

Кроме того, щелкнув правой кнопкой мыши на действии в редакторе действий и выбрав «Перейти к слоту ...», вы сможете создать функцию слота для любого сигнала, который может испускать действие.

...