有一个容器Widget实例A,A内包含Widget实例C1、C2、C3……等。
有一个插槽处理 Widget A 的 action_triggreed() 信号。
有没有办法确定点击了哪个目标小部件 C1、C2、C3...? 这种必要性的原因是包含许多小部件,并且在每个小部件上使用 connect() 方法没有意义,这将需要 50 多行额外的连接语句,每个一个!
例如:考虑一个带有很多按钮的 QToolBox。您将如何通过使用 QToolBox action_triggered 或类似信号来确定按下哪个按钮,而不单独为各个按钮使用信号和槽?
最佳答案
您可以使用 QObject::sender()
函数。
void A::triggeredSlot() {
QObject* obj = sender();
QButton* but = qobject_cast<QButton*>(obj);
}
只需使用正确的类型等
关于c++ - Qt C++ : How to get event target object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36050747/