//tsignal.h ... class TsignalApp:public QMainWindow { Q_OBJECT ... // 信号声明区 signals: // 声明信号 mySignal() void mySignal(); // 声明信号 mySignal(int) void mySignal(int x); // 声明信号 mySignalParam(int,int) void mySignalParam(int x,int y); // 槽声明区 public slots: // 声明槽函数 mySlot() void mySlot(); // 声明槽函数 mySlot(int) void mySlot(int x); // 声明槽函数 mySignalParam (int,int) void mySignalParam(int x,int y); } ... //tsignal.cpp ... TsignalApp::TsignalApp() { ... // 将信号 mySignal() 与槽 mySlot() 相关联 connect(this,SIGNAL(mySignal()),SLOT(mySlot())); // 将信号 mySignal(int) 与槽 mySlot(int) 相关联 connect(this,SIGNAL(mySignal(int)),SLOT(mySlot(int))); // 将信号 mySignalParam(int,int) 与槽 mySlotParam(int,int) 相关联 connect(this,SIGNAL(mySignalParam(int,int)),SLOT(mySlotParam(int,int))); } // 定义槽函数 mySlot() void TsignalApp::mySlot() { QMessageBox::about(this,"Tsignal", "This is a signal/slot sample without parameter."); } // 定义槽函数 mySlot(int) void TsignalApp::mySlot(int x) { QMessageBox::about(this,"Tsignal", "This is a signal/slot sample with one parameter."); } // 定义槽函数 mySlotParam(int,int) void TsignalApp::mySlotParam(int x,int y) { char s[256]; sPRintf(s,"x:%d y:%d",x,y); QMessageBox::about(this,"Tsignal", s); } void TsignalApp::slotFileNew() { // 发射信号 mySignal() emit mySignal(); // 发射信号 mySignal(int) emit mySignal(5); // 发射信号 mySignalParam(5,100) emit mySignalParam(5,100); }注意 connect() 里面的信号和槽 的函数 不写形参
新闻热点
疑难解答