如何继承Qpushbutton信号

时间:2011-06-24 02:20:40

标签: qt signals-slots

我向Qt Slot传递了一个参数,该参数是一个我写过的类(Image_Viewer)。

要在信号和插槽之间建立连接,它们都必须具有相同类型的参数(如果我错了,请纠正我)。

我只需要Qpushbutton classe的clicked()信号,但由于它没有与我写过的Slot相同的参数,连接无法完成。

如果制作另一个也有(Image_Viewer)作为参数的信号是唯一的解决方案,那么我怎么能在哪里写呢?如果不是那么解决方案是什么?

PS:抱歉我的英文

2 个答案:

答案 0 :(得分:2)

您可以使用QSignalMapper模拟“添加”clicked()广告位的参数。文档中的示例就是这样做的。

Signals and Slots - Advanced Usage部分中的更多信息。

答案 1 :(得分:1)

您可以尝试使用额外的插槽来拨打电话。

connect(btn,SIGNAL(clicked()),this,SLOT(slotToCallYourRealSlot()));

void YourClass::slotToCallYourRealSlot()
{
   yourRealSlot(Image_Viewer());
}

void YourClass::yourRealSlot(Image_Viewer viewer)
{
   //your code
}