من البته تجربه ی زیادی در مورد QT ندارم.اما به طور کلی زمانی که یک Widget تغییر می کند (به وسیله ی کاربر یا به هر شکل دیگر) یک سیگنال ایجاد می کند.این سیگنال می تواند به یک تابع متصل شود و موجب اجرای آن شود.به این تابع SLOT گفته می شود.بنابراین هر گاه سیگنالی ایجاد می شود به طور خودکار یک اسلات اجرا می شود.به مثال زیر توجه کن:
QPushButton *button = new QPushButton("Quit", 0);
QObject::connect(button, SIGNAL(clicked()),
&app, SLOT(quit()));
هر گاه دکمه ی button( که یک Widget است) توسط کاربر کلیک شود سیگنال clicked ایجاد می شود و باعث اجرای اسلات quit() از شی app می شود.
001 #include <qapplication.h>
002 #include <qpushbutton.h>
003 int main(int argc, char *argv[])
004 {
005 QApplication app(argc, argv);
006 QPushButton *button = new QPushButton("Quit", 0);
007 QObject::connect(button, SIGNAL(clicked()),
008 &app, SLOT(quit()));
009 app.setMainWidget(button);
010 button->show();
011 return app.exec();
012 }
اگر می خوای بدونی که خود SIGNAL/SLOT در ساختار زبان سی چه جایگاهی داره(از اونجایی که QT سی پلاس پلاس خالص است!)،می تونی به منابع اینترنتی مراجعه کنی.
در مورد سیگنال و اسلات مطالب بسیاری موجود ه که می تونی به پستهای این سایت و منابع اینترنتی ازجمله خود سایت TrollTech مراجعه کنی.