一个辅助类,用来将多个发送者连接到同一个槽。
在以下情况下,这个类很有用:你想要在单个槽里对很多对象或者部件的信号进行响应,但是需要用某些属性来识别特定的发送者 。
使用示例:
void Test::createWidgets()
{
Wt::WSignalMapper<WText *> *MyMap = new Wt::WSignalMapper<Wt::WText *>(this);
//将mapped()连接到我们的目标槽
MyMap->mapped().connect(this, &Test::onClick);
//将每个源信号连接并且映射到映射器
MyMap->mapConnect(text1->clicked(), text1);
MyMap->mapConnect(text2->clicked(), text2);
MyMap->mapConnect(text3->clicked(), text3);
}
void Test::onClick(WText* source)
{
// source就是信号的发送者
// ...
}
类型T 可以是任何拥有适当的复制方法和一个默认构造函数的类型。映射器可以将一个额外的参数(类型 A1 )从原信号传递到 mapped() 信号。在那种情况下 ,你必须将原信号连接到 map1() 槽 ,或者使用 mapConnect1() 。
HxLauncher: Launch Android applications by voice commands