LINUX.ORG.RU

Передача сигнала в qt в качестве параметра

 , ,


0

0

Всем привет. Можно ли в qt передать указатель на сигнал в метод? Например, хочу делать так

...
signals:
   void foo();
...

void A::sendSignal(signal_type signal) {
   //что-то делаю
   emit signal;
   //что-то делаю
}

А использовать, соответственно, так

void A::fooBar() {
   sendSignal(SIGNAL(foo));
}

Осталось определить только signal_type, только как это сделать? Гуглил, ничего не нашел.

Ответ на: комментарий от Deleted

хлебобулочное троллейбусостроение же

+1

Тип будет что-то вроде void (YourClass::*signalName)()

Stil ★★★★★
()
Ответ на: комментарий от dib2

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

twentypercentcooler
() автор топика
Ответ на: комментарий от dib2

долбанный хромиум, перестал подставлять http://. как лечить, кто знает?

если вместо http:// он тебя отправляет в гугл, то лечить сменой браузера. ну или аддоны поискать какие...

MyTrooName ★★★★★
()

слаба лямбдам.

signals:
   void foo();
...

void A::sendSignal(const std::function <void ()> &f) {
   //что-то делаю
   f();
   //что-то делаю
}

А использовать, соответственно, так

void A::fooBar() {
   sendSignal([&] () {emit signal;});
}

и вуаля например.

nanoolinux ★★★★
()

Ну так ведь в SIGNAL(foo) - это макро, разворачивающееся в char*. Кто мешает посылать эту строку и посылать?

keyran ★★
()
Ответ на: комментарий от MyTrooName

не, раньше, до 33 версии если копировать URL в буфер из адресной строки или же выделить а потом вставлять средней кнопкой мыши - он добивал впереди http(s)://, хотя в самой адресной строке имени протокола не было. и все было хорошо.
но теперь, если протокол не указан - при копировании - добавляет http:// а если выделит и потом вставить средней кнопкой мыши - нет.
печаль в общем. другой браузер не предлагать

dib2 ★★★★★
()
Ответ на: комментарий от twentypercentcooler

Норкоман. Чини свою архитектуру.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.