Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как присоединить сигнал к функции
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
niXman
Допустим. Некоторый объект испускает сигнал, который можно соединить со слотом другого объекта. Это стандартная ситуация.
А как быть если сигнал нужно соединить с функцией, не являющейся членом?
niXman
Litkevich Yuriy, Ну это понятно. Меня такое не устраивает.
Tonal
Цитата(Litkevich Yuriy @ 23.8.2008, 11:25) *

Кстати, можно сделать такой объект более универсальным:
class TmpSlot: QObject {
  Q_OBJECT
public:
  typedef void(*RealSlot)();
  TmpSlot(RealSlot realSlot, QWidget *parent = 0) :
    QObject(parent), realSlot(realSlot) {
    assert(realSlot);
  }

public slots:
    void doSlot() {realSlot();}
private:
  RealSlot realSlot;
};

Тогда использование становится таким:
int main(int argc, char *argv[]) {
  QPushButton *btnPath = new QPushButton("Open");
....
  TmpSlot tmp(&myfunk);
  QObject::connect(btnPath, SIGNAL(clicked()), &tmp, SLOT(doSlot()));
....
}
niXman
Tonal, Ага! Спасибо!
Tonal
Там кнопочка для спасибы есть. :)
niXman
Tonal, Зделал :p
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.