Qt带参数的信号

8 篇文章 0 订阅
6 篇文章 0 订阅
Qt带参数信号

信号也可以重载
但是connect是会发生二义性,编译器不知道要处理哪个信号,因为我发出的信号是有参和一个无参的

signal:
void mySignals();
void mySignals(int,QString);
emit:
emit mySignals(120,"我是小窗口");
emit mySignals();
connect:
//处理无参信号
connect(&t,TowWindow::mySignals,this,&MainWindow::gotomain);
//处理有参信号
connect(&t,TowWindow::mySignals,this,&MainWindow::gotomain);

解决这个二义性问题可以用函数指针指向无参或有参信号
信号本来就是一个函数
void (TowWindow::*a_signal)() = &TowWindow::mySignals;
给函数指针命名时要注意加上一个作用域,表示这个函数是属于TowWindow类的
指向的信号当然更要加上作用域,因为这个信号在TowWindow类里
带参数:
void (TowWindow::*b_signal)(int,QString) = &TowWindow::mySignals;

connect:
	void (TowWindow::*a_signal)() = &TowWindow::mySignals;
    connect(&t,a_signal,this,&MainWindow::prin);
    void (TowWindow::*b_signal)(int,QString) = &TowWindow::mySignals;
    connect(&t,b_signal,this,&MainWindow::gotomain);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值