• 4250阅读
  • 2回复

Qt5中如何处理信号是重载的情况? [复制链接]

上一主题 下一主题
离线facatcool
 
只看楼主 倒序阅读 楼主  发表于: 2013-10-16
Qt5中下面这个段代码编译不了
  1. QProcess *pro=new QProcess(&a);
  2.     pro->connect(pro,&QProcess::finished,[=](int exitCode, QProcess::ExitStatus exitStatus){pro->kill();});

原因是有QProcess::finished(int)和QProcess::finished(int,QProcess::ExitStatus)这两个重载函数,编译器不知道调用哪个。如何显式的知道信号的函数呢?
离线dbzhang800

只看该作者 1楼 发表于: 2013-10-16
http://qt-project.org/doc/qt-5.0/qtcore/signalsandslots.html 下面的注解



Google搜素前两天的邮件列表:[Development] [RFC] What to do about overloaded signals/slots?

离线facatcool
只看该作者 2楼 发表于: 2013-10-16
引用第1楼dbzhang800于2013-10-16 09:37发表的  :
看 http://qt-project.org/doc/qt-5.0/qtcore/signalsandslots.html 下面的注解

Google搜素前两天的邮件列表:[Development] [RFC] What to do about overloaded signals/slots?
.......

谢谢,按文中是说法,改成这样就可以了
pro->connect(pro,static_cast<void (QProcess::*)(int,QProcess::ExitStatus)>(&QProcess::finished),[=](int exitCode, QProcess::ExitStatus exitStatus){pro->kill();});
快速回复
限100 字节
 
上一个 下一个