-
Hi,
meine Frage ist folgende:
Wenn ich mehrere QPushButton über die Connect Methode auf die gleiche Slot Methode click() zuweise, kann ich dann in der Click Methode die Button irgendwie unterscheiden ? Eine eigene Click Methode mit Parametern wurde nicht ausgeführt. z.B.
void MyWindow::click(QPushButton *btn)
{
if (btn->text().compare(btn1->text())==0)
status->showMessage("btn1 clicked");
else
status->showMessage("btn2 clicked");
}Ich hab's gerade gefunden :
void MyWindow::click(QPushButton *btn)
{
QObject * src=sender(); // Ermittelt die Quelle des Events (QObject Methode sender())
if (src==btn1)
{
status->showMessage("btn1 clicked");
}
else
{
status->showMessage("btn2 clicked");
}
} -
@Qt2108 sender() ist eine Möglichkeit.
Eine schönere sind Lambda-Funktionen:connect(someButton, &QPushButton::click, [someButton, this]() { click(someButton); }); connect(someOtherButton, &QPushButton::click, [someOtherButton, this]() { click(someOtherButton); });