Ich möchte alle Funktionen der linken Maustaste (wie geklickt(), gedrückt(), freigegeben(), setAutoRepeat()) auf QPushButton von der rechten Maustaste alle halten Die Funktionalität der linken Schaltfläche ist intakt. Hier ist der Code für die erneute Implementierung des eventFilter, der kein wünschenswertes Ergebnis liefert.Rechte Maustaste Funktionalität in QPushButton
bool PreciseControl::eventFilter(QObject *, QEvent *event)
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
if(event->type() == QEvent::MouseButtonPress &&
mouseEvent->button()==Qt::RightButton)
{
emit rightMousePressed();
return true;
}
else if(event->type() == QEvent::MouseButtonRelease &&
mouseEvent->button()==Qt::RightButton)
{
emit rightMouseReleased();
return true;
}
if(event->type() == QEvent::MouseButtonPress &&
mouseEvent->button()==Qt::LeftButton)
{
emit leftMousePressed();
return true;
}
else if(event->type() == QEvent::MouseButtonRelease &&
mouseEvent->button()==Qt::LeftButton)
{
emit leftMouseReleased();
return true;
}
return false;}
Kann jemand helfen? Danke im Voraus.
Blick in http://stackoverflow.com/questions/15658464/qt-rightclick-qpushbutton. – MoraRockey
Wie in Ihrem Beispiel überprüfen Sie [link] (http://doc.qt.io/qt-4.8/qobject.html#eventFilter) für Event filter, hier wird angegeben, dass wir Event-Filter für Objekt installieren müssen. In Ihrem Fall Drucktastenobjektname. Ansonsten können Sie Laufwerksklasse von QPushbutton erstellen und Ihr eigenes MouseEvent von QPushbotton schreiben –
Bitte zeigen Sie ein [mcve] und erklären Sie genau, was nicht funktioniert, "gibt kein wünschenswertes Ergebnis" ist nicht spezifisch genug. – Mailerdaimon