Создание соединений в Qt - PullRequest
0 голосов
/ 02 апреля 2011

Если я хочу установить соединение в Qt следующим образом:

QObject::connect(quitButton, SIGNAL(clicked()), &myapp, SLOT(quit());

На что здесь ссылается &myapp?Зачем его использовать?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2011

В этом случае вы получите следующее: всякий раз, когда quitButton посылает щелчок по сигналу, он отправляется на выход из слота в myapp.Если названия означают то, что я думаю, это, вероятно, кнопка для выхода из приложения.

Обратите внимание, что существуют разные версии connect .Трудно получить контекст из одной строки кода, но в любом случае вы можете проверить qApp , которая уже представляет ваше приложение.

РЕДАКТИРОВАТЬ: Из другого сообщения изВы заметили, что вы задали тривиальный вопрос об указателях.Так что, если это больше о том, что означает символ &, он принимает адрес вашего объекта.Это чистый C ++ (ничего специфичного для Qt).

1 голос
/ 02 апреля 2011

На что здесь ссылается & myapp?Зачем его использовать?

Это объект, который будет обрабатывать сигнал (& получает адрес объекта (т. Е. Базовый код использует указатели).

QObject :: connect (quitButton, SIGNAL (clicked ()), & myapp, SLOT (quit ());

Перевод:

Когда на * активируется сигнал clickedobject quitButton
Вызовите слот quit для объекта myapp.

Что это значит:

Сигнал - это просто метод, который вызывается объектом при определенных обстоятельствах.внутреннее состояние изменяется. В этом случае объект будет вызывать сигнал при щелчке мышью по элементу интерфейса пользователя.

Затем метод сигнала будет вызывать все (слот) методы, которые были зарегистрированы. Так что в этом случаекогда вы нажимаете на кнопку signal (), это, в свою очередь, вызывает метод quit () для объекта 'myapp`.

Учитывая способ, которым обычно выполняются примеры QT. myapp - это объект приложения, аМетод quit () приведет к выходу основного потокаиз вызова exec ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...