首页 > 学院 > 开发设计 > 正文

Qt 自定义 信号与槽

2019-11-09 21:01:43
字体:
来源:转载
供稿:网友
 //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()    里面的信号和槽 的函数  不写形参
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表