Допустим. Некоторый объект испускает сигнал, который можно соединить со слотом другого объекта. Это стандартная ситуация.
А как быть если сигнал нужно соединить с функцией, не являющейся членом?
см. http://www.forum.crossplatform.ru/index.php?showtopic=367
Litkevich Yuriy, Ну это понятно. Меня такое не устраивает.
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()));
....
}
Tonal, Ага! Спасибо!
Там кнопочка для спасибы есть.
Tonal, Зделал
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)