在Qt(C ++)中发出Clicked()后单击获取按钮

时间:2010-06-14 17:15:56

标签: c++ qt

我想知道,一旦按钮发出clicked(),有什么方法可以找出发出它的按钮而不会超载click()函数? (我有一堆功能几乎相同但文字不同的按钮,这是每个按钮的定义元素。)

提前致谢!

2 个答案:

答案 0 :(得分:10)

在您的插槽中,您可以调用sender()函数来获取向您发送clicked()信号的QObject。它返回QObject *。使用qobject_castQObject *转换为QPushButton *

文档here

答案 1 :(得分:6)

您可能想要使用QSignalMapper

在您的情况下,如果它只是您感兴趣的文本,则将每个按钮上的clicked()信号连接到信号映射器上的map()插槽,然后设置字符串映射{{1 }}。然后,信号映射器将以其自身setMapping( QObject * sender, const QString & text )信号的形式重新发出信号,并显示所单击按钮的正确文本。