Как подключить QActions к слотам с помощью QT Designer - PullRequest
4 голосов
/ 12 января 2011

Я создал красивую панель инструментов с помощью qt Designer и заполнил ее некоторыми действиями.
Я попытался визуально связать действия со слотами из qt designer , нажав изменить> сигналы и слоты .Это НЕ РАБОТАЛО , потому что я не мог найти сигналы QAction.

Вопрос.

Есть ли способ подключить QAction SIGNAL (triggered ()) к моим слотам в конструкторе QT?Пожалуйста, помогите.
PS: В настоящее время я вынужден подключиться через код:

QObject::connect(myAction, SIGNAL(triggered()),this, SLOT(myActionWasTriggered()))

, но я ленив и хочу подключиться, используя qt designer.

Ответы [ 4 ]

4 голосов
/ 12 января 2011

Смотрите здесь в Документах Режим подключения дизайнера ... Как выполнить автоматическое подключение в конструкторе

3 голосов
/ 12 января 2011

Есть закрепленная панель «Редактор сигналов / слотов» (переключается с помощью «Вид-> Редактор сигналов / слотов»).Вы можете подключить свои действия там.Вам также может понадобиться добавить свои пользовательские слоты через контекстное меню формы «Изменить сигналы / слоты».

Чтобы сэкономить некоторую работу, используйте функцию автоматического подключения (см. QMetaObject :: connectSlotsByName ).В основном, все слоты, названные с определенным шаблоном on_objectName_signalName, будут автоматически подключены.

2 голосов
/ 07 мая 2012

Используйте панель «Редактор действий».Вы можете найти его рядом с «Редактором сигналов и слотов».

0 голосов
/ 02 сентября 2013

Если у вас есть меню, назовите ваш объект действий в соответствии с меню, предположим, что у вас есть:

File Edit View Tools Help

У вас есть 5 меню,

Итак, у вас будет набор action_x, x - это число. Пожалуйста, назовите ваш x в соответствии с вашим меню.

больше объяснений:

File = 1
Edit = 2
View = 3
Tools = 4 
Help = 5

И предположим:

File---> Open ..Close
Edit---> find...replace
View---> ZoomIn ... ZoomOut
Tools--->calender... prefrences
help---> help... about

У вас есть 5x2 = 10, у вас есть 10 действий, управляйте, например:

action_11 == File>Open
action_12 == File>close
action_21 == Edit>find
and so on..

Приведенный выше тип управления облегчает кодирование .....

...