Qt 自定义 信号与槽

来源:互联网 发布:app开发需要什么软件 编辑:程序博客网 时间:2024/05/22 12:54
 //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()    里面的信号和槽 的函数  不写形参  
0 0
原创粉丝点击